Home
Youngho's Devlog
Cancel

[개발자 블로그] Spring MVC 동작 과정

Spring MVC는 DispatcherServlet, View Resolver, Interceptor, Handler, View 등으로 구성되어있다. 이중에 DispatcherServlet이 가장 앞단의 front controller역할을 하며 가장 핵심적인 역할을 한다. Spring MVC의 구체적인 동작 과정은 다음과 같다. ...

[개발자 블로그] Spring Interceptor 개념 및 흐름

Spring Request Flow Filter 사용자의 어떠한 요청이 있을 경우, 가장 앞단에서 거치는 곳. 예를 들어, UTF-8 인코딩을 처리하는 기본 필터 중에 CharacterEncodingFilter를 호출 할 수 있다. Spring MVC 기준으로 web.xml에서 설정 DispatcherServlet 서블릿과 마...

[개발자 블로그] Spring Annotation 활성화

Annotation 기본 개념 xml 설정이 너무 길어짐에 따라 그 대안으로 생겨났다. 클래스/메서드/필드에 Annotation을 달아 그 자체로 설정이 가능하도록 한다.(단, xml의 우선순위가 더 높음) 기본적으로 활성화되지 않기 때문에 xml에 명시적인 활성화 설정이 필요하다.(IDE에서 체크하면 자동으로 추가되도록 지원) Ann...

[개발자 블로그] ContextLoaderListener와 DispatcherServlet의 차이

ContextLoaderListener와 DispatcherServlet의 차이 ContextLoaderListener와 DispatcherServlet 모두 자체적으로 스프링 컨테이너를 만듬 ContextLoaderListener안에 있는 Bean들은 shared beans(공유하는 bean들 - DAO, DataSource, Serv...

[개발자 블로그] @Bean vs @Component

@Bean 어노테이션 개발자가 컨트롤이 불가능한 외부 라이브러리들을 Bean으로 등록하고 싶은 경우에 사용한다. 예를 들어, RestTemplate 등 @Component 어노테이션 직접 컨트롤이 가능한 Class들을 Bean으로 등록하고 싶은 경우에 사용한다. 개발자가 생성한 Class에 @Bean은 설정이 가능한가? 불가...

[Backend] 카나리 배포

운영중인 서비스에 새로운 버전을 배포할 때 이상적인 방법으로 카나리 배포를 알게 되었다. 수 많은 클라이언트들이 사용중인 상황에서 배포하는 가장 이상적인 방법이라 한다. 카나리 배포는 흔히 단계별 배포 또는 점진적 배포라 불리었다. 기존 서버로 들어오는 트래픽을 10%, 20%, 30% 조금씩 신규 서버로 옮긴다. 조금씩 트래픽을 옮기면서 이슈 사항...

[개발자 블로그] 스프링 의존성 주입과 인터페이스

Spring을 활용하여 개발하면서 꼭 인터페이스 타입으로 의존성을 주입받아야 하는지에 대해 생각해보게 되었다. (CustomerService인터페이스를 만들고 CustomerServiceImpl을 구현한 후 인터페이스 타입으로 주입받는 것 처럼) SOLID원칙 중 OCP에 따르면 변화에 유연하게 대처할 수 있도록 인터페이스 타입으로 주입 받는 것이 ...

[Java] 반복문 작성 시 안 좋은 습관

반복문을 작성할 때 안 좋은 습관 1) 불필요하게 조건문에 함수 호출문을 넣는 습관 public void example(List<Integer> numbers) { for (int i = 0; i < numbers.size(); i++) { ... } } 만약 위처럼 코드를 작성하고 numbers의 사이...

[Java] 반복문(for문 forEach문 비교)

프로그래밍을 배우는데 있어서 기본 중의 하나는 반복문이다. 하지만 반복문을 어떻게 사용하느냐가 애플리케이션 성능에 얼마나 영향을 끼치는지 생각을 해보게되었다. Java에서 Collection을 순환할 때 forEach문을 자연스레 사용하고 있었고, 일반 for문하고 가독성 외에는 성능적으로 차이가 없을거라 생각했다. 하지만 for문과 forEach문은...

[개발자 블로그] Spring Framework

Framework란? “소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것” - 랄프 존슨(Ralph Johnson) - 말 그대로 뼈대나 근간을 이루는 코드들을 묶어놓은 것 프레임워크는 반제품으로 애플리케이션 구조 및 코드의 상당 부분을 제공하여 개발자는 핵심 비즈니스로직에만...