컨셉 - JetBrains 사에서 만든 언어- JVM 기반 언어 - .java에서 컴파일된 .class 파일을 동일하게 코틀린에서도 사용 - 자바에서 소스파일을 .java로 사용하듯 코틀린에서 같은 레벨에 .kt 파일로 정의됨- 코틀린이 자바와 100% 호환될 수 있는 이유: 코틀린도 .class 파일로 컴파일되기 때문. 따라서 import를 통해 코틀린 소스코드 내에서 자바 라이브러리, 스프링 등을 참조할 수 있음(import 시 이미 컴파일된 class를 참조하기 때문)- 2016년 코틀린 1.0 릴리즈, 스프링 프레임워크 5.0부터 코틀린 공식 지원, gradle의 경우 Groovy에 더해 Kotlin DSL 지원- JetBrains 사에서 코틀린 기반의 백엔드 애플리케이션 프레임워크 ..
스프링 프레임워크와 스프링 부트의 차이점 중 하나는 AutoConfiguration의 기능으로 알고 있었지만, 이 기능이 어떤 방식으로 동작하는지 궁금했고 이번 기회에 스프링 부트의 AutoConfiguration의 동작 과정에 대해 포스팅해보았다. 본론으로 들어가기 앞서 Spring과 Spring Boot의 차이점에 대해 알아보자. Spring과 Spring Boot의 가장 큰 차이점은 '의존성의 버전 관리'와 '간편한 자동 설정'이다. Spring - 필요한 dependency를 모두 직접 빌드 툴에 등록해줘야 한다. - Dependency의 버전을 직접 명시해줘야 한다. - 필요한 설정 파일을 작성하고 빈으로 등록해야 한다. Spring Boot - 필요한 dependency의 묶음을 제공하고 추가..
Dispatcher Servlet 등장 배경 요청 메시지를 파싱하고 분석하고 이에 대한 응답 메시지 또는 파일 등을 만드는 작업 등을 매번 웹 개발자가 컨트롤 하는 것이 매번 서블릿을 만들때마다 중복해서 할 수밖에 없었다. 그래서 이런 작업을 통합적으로 해주는 것이 필요했고 필요할 때 마다 템플릿화 시켜서 변경이 필요한 부분에만 변경을 해주고 어떤 서비스를 호출하고 어떻게 처리할 지를 정하는 것을 '분리'해야 한다는 필요성에 의해 등장했다. Front Controller Pattern 중앙 집중형 컨트롤러를 가장 앞단에 두는 방식이다. 스프링은 Dispatcher Servlet을 제공하는데, 이는 Front Controller Pattern이 적용된 결과이다. 여러개의 서블릿을 둘 수도 있지만 스프링에서..
Bean Scope Spring에는 6가지 bean scope이 있지만 기본적으로 Bean을 Singleton으로 관리한다. IoC 컨테이너 생성 시점에 Bean을 생성하는 이유(Bean Scope이 싱글톤일때) You can generally trust Spring to do the right thing. It detects configuration problems, such as references to non-existent beans and circular dependencies, at container load-time. Spring sets properties and resolves dependencies as late as possible, when the bean is actually cr..
스프링 프로젝트를 진행하면서 느꼈던 것은 그 목표를 분명히 알고 사용하지 않으면 그 가치를 제대로 얻기 힘들다는 것이였다. 스프링이 제공하는 기술들을 갖다 사용하면 단순히 스프링을 적용한 것 뿐이지 스프링의 장점이 활용되었다고 보기 힘들다. 따라서 스프링의 목적과 왜 만들어졌는지를 파악하고 스프링이 제공해주는 혜택을 제대로 누려서 활용해야 한다는 생각이 들었다. '스프링 프레임워크'란? Spring의 정의는 다음과 같다. 자바 엔터프라이즈급 개발을 쉽게 해주는 '애플리케이션 프레임워크' 위 스프링 정의를 보면 쉽게 와닿지 않을 것이다. 따라서 스프링의 정의에서 설명하고 있는 애플리케이션 프레임워크에 대해 알 필요가 있다. 애플리케이션 프레임워크? 애플리케이션 프레임워크를 이해하기 전에 프레임워크가 무엇인..
- Total
- Today
- Yesterday
- Java
- argocd
- Kubernetes
- github actions
- LFCS
- 우분투
- golang
- 코틀린
- Controller
- ci/cd
- RDB
- K8s
- Stream
- kafka
- jvm
- ubuntu
- go
- Kotlin
- Linux
- CICD
- 카프카
- 컨트롤러
- 쿠버네티스
- db
- GitOps
- Non-Blocking
- container
- docker
- spring
- rolling update
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |