Spring
application.properites은 application 사용할 때 미리 설치하는 것이라고 보는 것
Gradle - build tool (구조 task로 되어있다.)
H2 - 데이터 베이스 종류 중 하나
프로젝트를 받으면 제일 먼저
폴더명Application.java 파일이 제대로 실행되는지 부터 확인한다. (main 메소드 실행)
실행 후 로그 중에서 밑 부분을 보면 아래와 같은 글을 볼 수가 있다.
Tomcat started on port(s): 8080 (http) with context path ''
8080 포트. http로, 뒤에 경로는 없다는 뜻이다.
8080/으로 입력했는데 안뜨는 경우 path뒤에 뭐가 붙어 있는지 확인한다. (있으면 뒤에 뭐 붙여주면 뜬다.)
* 톰캣이라는 웹 서버에서 설정할 수 있다.
http://localhost:8080 주소로 접속한다. 👉🏻 스프링 작동을 완료했다.
Annotation _ 편하고 유연하게 사용
spring에서는 java의 reflection(자바에서 제공하는 기능)을 사용해서 기능을 실시한다.
접근제어자(public, private)보다 우선 동작 👉🏻 runtime 실행중
* spring에서는 (어떤 역할을 하고 기능을 하는지 보려면) Annotation 먼저 읽어야 한다.
사전적으로는 주석이란 뜻이다.
JAVA 코드에 @로 시작해서 클래스나 메소드 선언문 바로 위에 쓰이게 된다.
어노테이션은 코딩할 때는 @로 표시만 하면 되지만 컴파일될 때 약속했던 특별한 의미를 가지게 된다.
어노테이션은 너무 많아서 미리 다 알기 때문에 나올 때 의미를 알면 된다.
flask에서 app.route 작성할 때 썼다. (@app.route)
* 컴파일(Compile)은 주어진 language로 작성된 컴퓨터 프로그램을 다른 언어의 동등한 프로그램으로 변환하는 프로세스
* springboot api doc (사용설명서) >>
https://docs.spring.io/spring-boot/docs/current/api/
- @SpringBootApplication 처럼 SpringBoot가 붙으면 SpringBoot가 관리해주고 그 외는 컴파일러가 관리해준다.
* 코드비교 diff checker
* 면접 질문 예시) Annotation 을 기반으로 한 지식을 가지고 autowired가 어떻게 되는지 흐름 설명
+) 내가 아는 한 대답하고 모르면 모른다고 하기(그냥 모른다고만 하지말고 최대한 대답하려고 하기)
extends는 상속, implements는 인터페이스를 구현하는 것이다.
class 회사 개발자 extends Person implements 개발자, 회사원{
}
* 참고해보기 >> 자바 extends, implements 차이
* 인터페이스 예시로 운전자와 자동차를 들 수 있다.
자동차 a와 자동차 b가 있는데 운전자가 a 자동차를 탔다가 b 자동차를 타면 운전 하는 법을 다시 배우지는 않는다.
각자 체계 역할만 제대로 하면 된다.
* SOLID != 객체지향
소스분석
파일 구조 먼저 보고 코드 맨 위에 있는 import만 봐도 어떤 역할을 하는지 파악이 가능하다.
👉🏻 springboot 쓴다라는 의미
Spring이라는 프레임워크를 사용하는데 그거에 쓰는 언어를 JAVA로 쓴다.
* Kotlin이라는 언어를 사용할 수도 있다.
프레임워크와 라이브러리 차이
- IoC(제어 역전)
프레임워크는 제어 역전이다.
라이브러리는 pymongo이고, 프레임워크는 flask이다.
flask를 쓰려면 쓰라는 대로 써야한다. (틀에 맞춰서)
👉🏻 제어하는게 역전되었다고 한다.
spring에서도 IoC라고 쓰는데 프레임워크에서 나온 단어이다.
큰 흐름 정리
SQL 대신 JPAToolkit : Lombok (쉽게 사용하기위한 툴킷)
Object oriented의 가장 큰 특징이 다형성이다.
- 다형성을 잘 하기 위해서 나온 것들 👉🏻 DI, Ioc
Controller service repository를 사용해서 spring을 사용한다.
- 정확히는 layered architecture라고 부른다. (3 티어 layer)
MVC와는 다른 개념
[과제]
쿠키, 세션, 인증, 인가 정의
HTML MESSAGE에서 어떻게 세팅이 되는지 알아보기
H2 공식문서 >> https://www.h2database.com/html/main.html
'TIL' 카테고리의 다른 글
59일차_Bean, IoC, DI (0) | 2021.11.10 |
---|---|
58일차 (spring1 실습) (0) | 2021.11.09 |
54일차 (0) | 2021.11.06 |
53일차(미완) (1) | 2021.11.04 |
52일차 (0) | 2021.11.04 |