티스토리 뷰

Java/project lion JSB the origin

Ch.1 Basics

summercat 2022. 1. 29. 19:29

Java 프로젝트

JDK란?

Java

프로그래밍 언어 (<> 기계어: 0과 1로 이루어진 컴퓨터가 이해할 수 있는 언어)
high-level language (사람이 이해하기 쉬운 형태의 프로그래밍 언어)

  • C, C++, JS, Python 등도 high-level language에 속함
    Java언어도 컴퓨터가 이해할 수 있는 형태의 기계어로 변환되어야 함
    Java Bytecode
  • Java 언어를 해석하여 만든 Assembly 언어와 유사한 언어
  • Java 언어의 소스 코드 파일은 *.java 형태, Bytecode 파일은 *.class 형태로 저장

JVM (Java Virtual Machine)

  • java bytecode를 받아서(읽어서) 기계어로 컴퓨터에 전달(변환)
  • java bytecode: java(프로그래밍언어)와 기계어 사이의 중간 단계. 한줄 한줄이 기계어 한줄에 대응됨.
  • java bytecode를 만드는 데 꼭 java를 사용할 필요는 없음. kotlin, scala 등도 java bytecode를 가지고 수행되는 언어임

JRE (Java Runtime Environment)

  • bytecode안의 내용 중 바로 이해할 수 없는 내용(외부의 소스코드에 들어가 있는 내용, 라이브러리 등)이 포함되어있는 것을 실행하기 위한 환경 (JVM은 bytecode를 기계어로 전달하는 역할만 함)
  • JRE 안에 JVM, 라이브러리 등이 포함되어 있음

JDK (Java Development Kit)

  • 자바 언어를 사용해서 개발할 때 필요한 도구를 모아둔 것
  • compile: 자바 언어를 java bytecode로 변환하는 과정
  • JDK 내에 JRE, java, javac 등이 포함되며, JRE 내에 JVM, 라이브러리 등이 포함되어 있음

Code Editor와 IDE

Code Editor와 IDE

IDE (Integrated Development Environment)

  • 코드를 효율적으로 작성하기 위한 도구
  • 단순 문법, 어휘적인 부분 체크 이상으로 사용하는 언어/프레임워크에 따라 다양한 기능 제공
  • IntelliJ, Visual Studio, Xcode, ...

Code Editor

  • 코드의 작성을 도와주는 도구
  • 프로그래밍 언어에 따라 문법 검증 및 편집 편의성 제공
  • sublime text, vim, Visual Studio Code 등

Docker Setting

Docker 기초

Docker

  • 컨테이너 개념을 이용한 가상화 기술의 일종
  • OS 위에 컨테이너를 올려 어플리케이션을 활용
    • 컨테이너: application
    • 컨테이너를 실은 배: docker

  • 이전의 가상화 기술에 비해 훨씬 가벼움 (이전의 가상화기술은 hypervisor를 이용)
    • hypervisor를 이용한 가상화기술: Host OS위에 가상의 Guest OS들을 올려서 구현
    • docker engine: Host OS의 소프트웨어의 일종으로, Host OS위에 바로 컨테이너가 올라감. 컨테이너 안에 라이브러리와 application이 담겨있음.

데이터베이스

  • MySQL: 관계형 데이터베이스
  • redis: key-value 데이터베이스
  • RabbitMQ: message broker
  • 서로 다른 하드웨어/OS에 올라갈 때 설정이 각각 다름. 이 문제를 해결하기 위해 docker desktop을 활용.

Docker 테스트 해보기

docker --help
  • 터미널에서 docker --help 입력 시, 사용 가능한 명령어의 목록을 볼 수 있음
docker run -d -p 80:80 docker/getting-started
  • docker: Docker Daemon에 요청을 보낸다
  • run: 컨테이너를 실행한다
  • -d: detached. 컨테이너를 background에서 실행하는 옵션
  • -p: port. 컨테이너의 포트를 물리 서버의 포트와 연결한다
  • docker/getting-started: 컨테이너로 실행할 이미지의 이름

Client-Server Model

HTML, CSS, JS

Spring Boot

  • Spring: Application Framework의 하나.
  • Spring Boot: (Web) Application Framework (web에서만 사용되지는 않기 때문). spring의 하위 프로젝트 중 하나.

HTML, CSS, JS

  • 인터넷 브라우저에서 작동하는 언어
  • HTML, CSS, JS 3가지를 인터넷의 cornerstone이라 부름
  • HTML (Hypertext Markup Language): 브라우저에 표시될 내용을 기술하는 언어
  • CSS: 표현되는 형식을 정의하는 언어. HTML 문서 상에서 사용될 색, 모양, 폰트 등을 정의함.
  • JS: 브라우저에서 사용하고 있는 HTML문서의 동작을 제공(정의)하는 언어
    • 버튼 클릭으로 인해 다른 페이지로 이동하는 것은 JS와 관계가 없을 수 있음.
    • 하나의 페이지 안에서 새로고침 없이 조작 ex. 마우스 오버 시 색이 바뀌는 것 등

Frontend와 Backend

Frontend

  • 인터넷 브라우저: HTML, CSS, JS를 해석하는 도구
  • Vue.js, React.js 등의 프레임워크: HTML, CSS, JS로 다시 번역됨
  • Front-end 개발자: 브라우저에 보이는 것을 중점적으로 개발
  • Back-end 개발자: 상황에 맞는 로직(비즈니스 로직)과 데이터를 다루는 개발자
    • 비즈니스 로직: 사용자로부터 요청을 받으면 서버(컴퓨터)가 돌려주는 응답/보여주는 내용(데이터)

Client - Server Model

인터넷

  • 원격으로 연결된 수많은 컴퓨터들이 이루는 네트워크
  • 인터넷을 통해 또다른 컴퓨터/서버컴퓨터에 요청을 보냄으로써 다시 돌려받은 HTML문서를 브라우저에서 페이지의 형태로 보여주게 됨
    • http: 이 과정에서 사용되는 요청과 응답의 형식
    • 인터넷 브라우저는 서버에 특정한 요청을 보내고 돌려받음

client-server model

  • 요청과 응답을 통해 하나의 컴퓨터/프로세스에서 또 다른 컴퓨터/프로세스로 요청과 응답을 주고받는 형태를 띄는 어플리케이션
  • spring boot framework의 역할: 서버 프로세스에 해당
  • spring boot framework: http 요청 등을 받으면 요청에 따른 응답을 돌려주는 web application을 만드는 framework (framework: 특정한 목적을 위한 도구 또는 라이브러리의 모음)

Spring Boot 프로젝트 시작하기

Spring Initializer (start.spring.io)

  • group: 도메인을 역순으로 기재하면 됨
  • artifact: 개별 프로젝트 하나를 의미
  • name: 실제 프로젝트의 이름
  • description: 설명
  • package name: 위의 조건들을 기준으로 자동 완성됨

'Java > project lion JSB the origin' 카테고리의 다른 글

Ch.6 Spring Boot 기능활용(1)  (0) 2022.03.04
Ch.5 CRUD & Data (2)  (0) 2022.03.01
Ch.4 CRUD & Data (1)  (0) 2022.02.19
Ch.3 Spring Boot Basics (2)  (0) 2022.02.13
Ch.2 Spring Boot Basics(1)  (0) 2022.02.05
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함