일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Spring
- spring scheduler
- springboot
- Kotlin
- IDDD
- Redis
- ddd
- Conference
- spring caching
- java17
- 바운디드컨텍스트
- Pay
- zuul
- MSA
- 애그리거트
- 신입
- MongoDB
- 반버논
- kakao
- 값객체
- mongo
- spring-web
- spring6
- ifkakao
- armeria
- springboot3
- 개발자
- docker
- springcloud
- webframework
- Today
- Total
목록Study (23)
Easy Understanding
참고로 스터디는 다음의 책을 통해서 진행했다. DDD 간단 소개 우선 DDD(Domain-Driven Design)에 대해서 간단하게 소개를 하자면 다음과 같다. DDD는 단순한 코딩/아키텍처 구성 방법이 아니다. 즉 패턴과 설계와 아키텍처를 모조리 합친 그 무언가 개발의 새로운 패러다임이다. DDD는 기존의 설계 방식과 개발 방식을 새로운 관점으로 보게 해준다. 개발을 하면서 부딪히는 문제는 여러 가지가 있지만 크게 두 가지로 나눌 수 있다. 사용자(고객, 회사 등)에서 제시하는 복잡하고 자주 변화하는 요구사항 성능이나 협업에서 발생하는 기술적인 어려움 DDD는 보통 첫 번째 원인 해결에 초점을 맞춘 방법론이다. 기획자(도메인 전문가)들의 요구사항을 개발 언어로 변환하는 '비효율'을 최대한 '효율'적으..
1. Security의 목적 Spring Security 모듈은 말 그대로 어플리케이션을 'Secure(안전)'하게 유지시키기 위한 모듈이다. 보통 비밀번호나 키 들을 이용해서 접근을 통제하거나(Authentication), 접근하는 사람의 신분이 User인지 Admin인지 등에 따라 제한된 권한을 주기도 한다.(Authorization) 2. 어떤 기술을 기반으로 하는가 Spring은 일반적으로 '웹' 서버를 만드는 데 사용이 된다. 웹 서버는 일반적으로 웹 요청이 들어왔다가(Request), 원하는 정보를 얻어 나가는 형태(Response)로 동작한다. Spring Security는 들어오는 중에, 웹 요청을 앞에서 미리 방어하는 식으로 구현되어 있다. 정확하게 이런 식으로 구현되어 있지는 않지만, ..
1. module 분석 스프링 프레임워크에서 web과 관련된 모듈은 총 네 가지가 있다. 이렇게 네 가지이다. websocket 을 제외한 세 가지를 알아보면 다음과 같다. 1) spring-web spring-web 모듈은 web 서버를 구축하는 데 있어서 공통적인 역할을 하는 클래스들이 모여있는 곳이다. 그러다보니 각종 인터페이스들이 많이 존재한다. 예를 들면 request, response에 대한 인터페이스 같은 것들이다. 아니면 Exception, Filter, Cors 같은 것들과 관련된 기능들이 들어있다. 여기에 있는 클래스들은 나머지 webmvc, webflux, websocket 에서 공통적으로 사용될 것이다. 2) spring-webmvc spring-webmvc 모듈에는 'servlet..
1. 서블릿이 무엇인가 우선 예전에는 몰랐던 Servlet의 의미를 다시 한 번 정리해보려고 한다. 대부분의 설명에서는 자바 웹서버 '프로그램'이라고 하는데, '아 그래서 프로그램이 정확하게 뭘 말하는 건데 ㅡㅡ' 라는 생각으로 좀 찾아보았다. 정확하게 말하면 Servlet은 Java의 스펙이다. JPA도 단순 명세이고 이것을 구현한 것이 Hibernate인 것 처럼, Servlet도 명세고, 구현체로는 Tomcat 같은 것이 있는 것이다. 그래서 Servlet 코드를 열어보면 대부분이 인터페이스밖에 없다. Servlet은 Spring처럼 ServletContext라는 Container에서 관리된다. 이 Servlet Container에서 여러 개의 Servlet을 관리하는 식으로 동작을 하게 된다. S..
스프링 Core 문서를 읽으니 스프링이 어떤 기능을 제공하는지는 확실히 알게 되었다. 그렇지만 이번 스터디의 목표는 IoC 컨테이너의 구현을 확실히 확인하자는 것이었기 때문에, 다음 목표는 코드로 잡고 스프링 github 내용을 다운 받아 IntelliJ를 이용해서 분석하게 되었다. 문서의 흐름과 비슷하게 다음의 순서로 코드를 분석해보았다. 1) Spring BeanFactory 가 구현된 spring-beans 모듈 정리 2) Spring ApplicationContext 가 구현된 spring-context 모듈 정리 3) 그 중에서 핵심이 되는 클래스들의 내부 구현 확인 spring-beans 모듈 구성 beans 패키지: Java Beans를 다루기 위한 클래스들이 놓여있다. - factory(*..
2. Resource 일단 Resource가 무엇인가 알아보아야 할 것 같다. 간단하게는 스프링 패키지를 타고 내려가다 보면 resources 라는 폴더가 있다. 거기에 있는 파일들이 간단하게 Resource들이다. 원래대로라면 자바의 java.net.URL 클래스를 이용해서 Resource를 사용할 수가 있다고 한다. 그러나 이 단순한 클래스로는 다양한 리소스에 대한 동적인 처리가 어렵다. 특히나 파일들을 가져올 때, 클래스패스를 기준으로 가져올 것인지, 아니면 ServletContext를 위주로 가져올 것인지 이런 다양한 상황에 대해서 대처가 불가능하다. 그냥 자바의 기본 라이브러리는 굉장히 단순하고 기능이 적다는 말이다. 그래서 스프링에서는 서버의 자원들을 어떻게 접근하고 관리할 것인가에 대해서 하..
스프링의 가장 핵심은 Inversion of Control(IoC) Container이다. 사실상 제일 중요한 기능이며, 문서의 대부분을 이루는 기술이기도 하다. IoC를 통해서 우리는 대부분의 코드를 선언적으로 사용할 수 있게 된다. 즉 기존에 Foo aFoo = new Foo(); 를 이용해서 절차적으로 만들던 코드를 단지 Foo() aFoo; 라는 선언만으로 사용할 수 있게 되는 것이다. 사실 이 정도만 따지면 단지 클래스의 선언을 도와주는 프레임워크라고 생각할 수도 있다. 그러나 스프링 IoC의 핵심은 이를 통해서 거의 대부분의 스프링 생태계를 이어준다는 데에 있다. 정말 다양한 모듈들이 다 이 IoC Container를 기반으로 하고 있고 그에 맞춰 구현되어 있기 때문에, 사용자는 대부분의 기능..