https://s3-us-west-2.amazonaws.com/secure.notion-static.com/ce9f3e94-94f9-48c0-8b5b-dcbda62666ce/Untitled.pngSpring framework를 이루는 다양한 기술스프링의 근간,
https://s3-us-west-2.amazonaws.com/secure.notion-static.com/0557c2ee-8300-4943-b7e3-7d789ca7fb6e/Untitled.pngIoC나 DI는 레고와 같은 것이다스프링이 바닥판처럼 깔려있고,
관점 지향 프로그래밍 - Aspect Oriented Programming 특정한 함수 호출 전이나 후에 뭔가 공통적인 처리가 필요하다면!? → AOP 로깅 트랜잭션 인증 OOP로 처리하기에는 다소 까다로운 부분을 AOP라는 처리 방식을 도입하여
Validation in spring Validation이란? 한국말로는 유효성검증 주로 사용자 또는 서버의 요청(http request) 내용에서 잘못된 내용이 있는지 확인하는 단계를 뜻함 Validation의 종류 학문적으로 여러 세부적인 단계들이 있기도
Spring Resource java.net.URL의 한계(classpath 내부 접근이나 상대경로 등)를 넘어서기 위해 스프링에서 추가로 구현 (제가 하고 있는)업무에서는 많이 사용되는 부분은 아니지만, 스프링의 내부 동작을 이해하기 위해서 필요한 부분 Resou
Expression Language(표현언어)는 짧고 간단한 문법을 통해 필요한 데이터나 설정 값을 얻어올 수 있게 하는 특별한 형태의 표현식에 가까운 간편한 언어(그래프 접근 등 가능)SpEL은 그 중에서도 스프링 모든 영역에서 사용 가능한 언어형식임주로 @Value
Null Safety 널 안정성을 높이는 방법 아래와 같은 코드를 만들지 않는 방법 혹은 아래와 같은 널 체크를 하지 않아서 발생하는 NPE(Null Pointer Exception)을 방지하는 방법 완벽한 방법은 아니지만 IDE(Intellij, Eclipse)에
초반 @Transactional 어노테이션에 대해 자세히 알아보지 않고,막연히 롤백때 사용한다고 하여 SQL C,U,D 를 할 때마다 메소드 위에 붙여서 사용하곤 하였다.하지만, 내 코드를 보신 선임께서 단지 @Transactional 만 붙이면 롤백이 안되고,@Tra
https://media.vlpt.us/images/agugu95/post/189b4d5e-002c-4e7c-a4fb-89f0dd60f435/image.png스프링을 사용한 웹앱의 경우 DAO, DTO, Repository, Entity를 사용하여 데이터를 다
디자인 패턴 자주 사용하는 설계 패턴을 정형화 해서 이를 유형별로 가장 최적의 방법으로 개발을 할 수 있도록 정해둔 설계 알고리즘과 유사하지만, 명확하게 정답이 있는 형태는 아니며, 프로젝트의 상황에 맞추어 적용 가능하다. Gof 디자인 패턴 소프트웨어를 설계할 때는 기존에 경험이 매우 중요하다. 그러나 모든 사람들이 다양한 경험을 가지고 있을 수는 없다....
공통인 로직을, 관리하기 편하게 하기 위해서 공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern)분리
스프링은 다형성을 극대화하여 이용할 수 있다.spring 의 다형성은 쉽게 interface 와 class(구현 객체) 로 설명할 수 있는데,interface 로 구현된 역할을 class를 통해서 구현할 수 있어서 서로간에 기능에 연관을 크게 미치지 않을 수 있다.예시
클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다.그래서 객체 인스턴스를 2개 이상 생성하지 못하도록 막아야 한다.private 생성자를 사용해서 외부에서 임의로 new 키워드를 사용하지 못하도록 막아야 한다.static 영역에 instance를 미
기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 구현 객체로 생성하고, 연결하고, 실행했다. 한마디로 구현객체가 프로그램의 제어 흐름을 통제했다.반면에 AppConfig가 등장한 이후로 구현 객체는 오직 구현 하나의 기능에만 집중할 수 있게 되었다. 프로그램의 제
주로 웹 요청과 관련된 작업을 수행하는데 사용된다. 예를 들어, 인증, 로깅, 트랜잭션 관리, CORS 처리 등의 기능을 구현할때 사용된다.주로 웹 요청의 전/후 처리에 중점을 둔다. 따라서 HTTP 요청의 생명주기 내에서 동작하는 로직을 구현할 때 주로 사용된다.Ha
msa를 경험해보기 위해 토이 프로젝트를 시작했다.구성은 사용자 서버, 관리자 서버, 알림 서버, 알림 작업서버 4개로 구성했다.아래는 컨테이너로 띄워진 서버 구성도이다.현재 관리자 서버에서 Kafka의 메시지 전송 실패에 대한 대시보드 작업을 진행중에 테스트 코드를
test code를 작성와중에 service를 호출해야하는 경우가 있었다. service 에는 jpa를 사용해 save() 하는 함수를 호출하는 로직이 있었는데 이 경우 까지 테스트를 진행하고 싶었다. 테스트 코드를 작성하고 crud 를 진행하기 위해서 코드를 실행했는