스프링
스프링 부트 vs 스프링 MVC
- 스프링 부트
- 내장 톰캣
- 자동 환경 구성: 트랜잭션 등 자주 사용하는 몇몇 라이브러리들을 자동적으로 설정해줌. 미리 구성된 스타터 패키지 제공
http://dveamer.github.io/backend/SpringBootAutoConfiguration.html
빈
빈이란?
빈 스코프
필터 vs 인터셉터
필터
- dispatcherServlet 전에 실행
- 예외가 발생하면 was단에서 처리를 해 주어야 ex. 에러 페이지 만들기
인터셉터
- dispatcherServlet후에 실행
- 후에 실행되므로, 필터보다 더 많은 정보(httpServletResponse/Request, 실행될 컨트롤러, 발생한 예외 등)을 전달받을 수 있음
- 예외가 발생하면 스프링 단의 예외처리 방법을 사용할 수 있음
코틀린
코틀린 특징
- 엄격한 null check
- 함수형, 객체지향 프로그래밍 모두 가능
- 기본적으로 immutable이어서 스레드 세이프함
- data 클래스: equals, hashcode, tostring, getter/setter 자동생성으로 롬복기능 일부 대신가능
프로그래밍 패러다임
명령형 프로그래밍
선언형 프로그래밍
- 알고리즘이 아닌 목표를 명시
- 데이터 중심적으로, 데이터를 변경하면서 프로그램을 진행하지않으므로 데이터들이 immutable함
- 외부 상태를 변경하지 않도록 인자가 같으면 언제나 같은 값을 반환하는 순수함수 사용
- 매개변수 또는 반환값으로 함수를 사용하는 고차함수를 사용(순수함수들의 집합으로 로직을 만들 수 있음)
- 전달되는 그 함수를 람다라고 함. 람다는 일급함수.