잘못된 예외 처리 코드는 찾기 힘든 버그를 낳을 수 있다 대표적인 잘못된 예외 처리 코드를 알아보고 예외 처리 전략도 알아보자 예외 블랙홀 try{ // SQL 쿼리 전송 } catch(SQLException e){ } 예외가 발생하면 그것을 잡아내는 것은 좋은데, 아무것도 아닌 것처럼 넘어가면 문제가 발생한다 결국 발생 예외로 인해 어떤...
스프링 테스트(test)
어떤 기능을 테스트 할 때 고려할 사항이 몇 가지 존재한다 하나하나 살펴보자 작은 단위의 테스트 어떤 기능을 개발할 때 높은 응집도를 가지는 것이 좋다고 했다 테스트를 작성할 때에도 동일하게 관심사의 분리가 이루어져야 한다 테스트의 관심이 다르다면 테스트할 대상을 분리하고 집중해서 접근해야 한다 이렇게 작은 단위의 코드에 대해 테스트를 수행한 것을...
스프링 싱글톤(Singleton)
싱글톤 패턴 (Singleton Pattern) 싱글톤 패턴은 어떤 클래스를 애플리케이션 내에서 주로 하나만 존재하도록 강제하는 패턴이다 이렇게 만들어진 클래스의 오브젝트는 애플리케이션 내에서 전역적으로 접근이 가능하다 단일 오브젝트만 존재해야 하고, 이는 애플리케이션의 여러 곳에서 공유하는 경우에 주로 사용한다 서버 어플리케이션과 싱글톤 스프링...
예제로 살펴보는 객체지향의 원칙
다음과 같은 User 클래스가 있다고 해보자 public class User{ String id; String name; String password; public String getId() { return id; } public void setId(String id) { th...
NoSQL과 Redis
#NoSQL과 Redis ##NoSQL 개념 데이터 저장 방식은 File System, RDBMS를 거쳐 현재의 NoSQL이 등장하였다 NoSQL은 기존의 시스템과 비교하면 많은 장점이 존재하는데, 이를 알아보자 ###1) 클라우드 컴퓨팅 환경에 적합하다 최근 클라우드 컴퓨팅 환경이 적극적으로 도입되고 있다 개발 운영 플랫폼은 새로운 변화를 요...
Spring Security (2) - 인증(Authentication)
#Spring Security 주요 아키텍쳐 이해 spring security의 주요 아키텍쳐는 다음과 같다 우리는 각 필터들이 어떤 역할을 하는 것인지 알아보고 이를 직접 구현해볼 것이다 #SecurityContextPersistenceFilter SecurityContext객체의 생성, 저장, 조회를 담당한다 사용자 인증을...
Spring Security 3
N— title: Spring Security (3) - 인가(Authorization) date: 2021-10-02 00:00:01 categories: [Spring, Security] tags: [spring security, authorization] # TAG names should always be lowercase — 저번 포스팅...
Spring Security (1)
# Spring Security란? 필자는 이전에 필터를 사용해 로그인 처리를 직접 구현한 경험이 있다. 그리 복잡하지 않았던 프로젝트임에도 불구하고 페이지가 추가될때마다 추가적인 설정을 해주는 것이 매우 불편했다 실제 서비스에서 이렇게 귀찮은 일을 할리가 없다고 생각하여 이러한 기능을 구현한 라이브러리가 있는지 찾아보았다 아니나다를까 Spring 프...
Spring 서블릿 필터(Filter)와 스프링 인터셉터(Interceptor)
서블릿 필터? 스프링 인터셉터? 웹 어플리케이션을 개발하다 보면 로그인 처리와 같이 대부분의 로직에서 공통으로 적용해야 할 기능들이 존재한다 이렇게 애플리케이션 로직에서 공통으로 관심이 있는 것을 공통 관심사(cross-cutting concern)라고 한다 이러한 공통 관심사는 Spring의 AOP를 통해 구현이 가능하지만, 로직의 복잡성이 증가할 ...
스프링 의존관계 주입 (Dependency Injection)
#의존관계 주입이란? 어플리케이션이 실행된 후 사용할 객체들이 생성된다 생성된 객체들이 서로를 의존하는 경우 각 객체들의 이름을 모를 뿐더러 주입하는 코드를 작성하기엔 너무 불편하다 따라서 생성된 객체들의 의존관계를 자동으로 설정할 필요가 있는데 이를 구현하는 다양한 방법이 존재한다 하나씩 알아보고 어떤 주입을 사용해야 하는지, 더 편하게 사용하는...