profile
안녕하세요~! 백엔드 개발자 허승연 입니다 :)
post-thumbnail

MSA 와 DDD (2) (DDD를 활용한 MSA)

💡 MSA와 DDD 시리즈에서는 다음과 같은 순으로 포스팅이 진행됩니다.(1) 왜 내가 MSA와 DDD 에 관심을 갖게 되었을까?(2) DDD를 활용한 MSA(3) DDD엔 어떤 문제가? feat. CQRS(4) 모놀리식와 MSA의 조합MSA(마이크로서비스 아키텍처)

2022년 3월 14일
·
0개의 댓글
post-thumbnail

MSA 와 DDD (1) (😤 왜 내가 MSA와 DDD 에 관심을 갖게 되었을까?)

💡 MSA와 DDD 시리즈에서는 다음과 같은 순으로 포스팅이 진행됩니다.(1) 왜 내가 MSA와 DDD 에 관심을 갖게 되었을까?(2) DDD를 활용한 MSA (3) DDD엔 어떤 문제가? feat. CQRS(4) 모놀리식와 MSA의 조합MSA와 DDD 에 대해 학습

2022년 2월 23일
·
0개의 댓글
post-thumbnail

MSA vs 모놀리식

💡 서비스의 규모가 확장되고, 데이터 저장 및 통신을 클라우드를 통해 하는 요즘, 기존의 방식인 모놀리식과 대비되는 MSA가 대두되고 있습니다. 이번 시간엔 MSA와 모놀리식에 대해 알아보고 차이점을 짚어보도록 하겠습니다. 👏🏻MA : Monolithic Arch

2022년 2월 23일
·
0개의 댓글
post-thumbnail

Spring 과 Spring Boot는 왜 등장했을까?

💡 Spring Framework를 배우기 시작하면서 Spring과 Spring Boot의 차이점에 대해서 항상 궁금했습니다. Spring의 복잡한 환경설정을 최소화하여 개발자의 서버 개발을 용이하게 하기 위해 나온 프레임워크가 Spring Boot라는 것만 안 채,

2022년 2월 3일
·
0개의 댓글
post-thumbnail

ResponseEntity 를 사용한 REST API 응답 데이터 생성기(Feat.builder 패턴)

RESTful API을 준수하기 위해선 다음 항목들을 알고 실천해야 합니다. Uniform (유니폼 인터페이스)Stateless (무상태성)Cacheable (캐시 가능)Self-descriptiveness (자체 표현 구조)Client - Server 구조계층형 구조

2022년 1월 30일
·
0개의 댓글
post-thumbnail

secret 파일 관리하기(feat.서브모듈)

최종 프로젝트를 진행하면서 AWS 계정 정보나 DB 계정 정보 등 민감한 정보들을 application.yml 에 담아야 했습니다. 프로젝트는 협업 및 버전 관리를 위해 Github Repository을 사용하는데, 민감한 정보들이 노출되면 안되므로 이를 숨기는 방법들

2022년 1월 30일
·
0개의 댓글
post-thumbnail

@AuthUser 적용 배경(feat. SpEL 문법 수정 배경, EmptyUser)

Controller layer 에서 매개변수에 어노테이션을 사용하여 편리하게 인증 유저 정보를 받아오기 위해 @AuthenticationPrincipal 어노테이션을 사용하여 Custom 어노테이션(@AuthUser)을 만들어 사용했습니다. 위 코드 덕분에 쉽게 유저

2022년 1월 30일
·
0개의 댓글
post-thumbnail

CORS 이슈 해결 1 : 동일 출처

프론트와 연동하는 과정에서 다음과 같은 오류가 발생했다.에러 메세지를 보면 CORS 정책에 의해 HTTP 요청이 block 처리 되었다는 것을 알 수 있었다. 일단 CORS 정책이 뭔지 왜 필요한지 짚고 넘어갈 필요가 있다. 웹 브라우저에서 통신을 할 때, 보안을 위해

2022년 1월 30일
·
0개의 댓글
post-thumbnail

스프링 외부 설정 우선순위

우리 프로젝트는 application.yml 에서 profile.active 설정을 주고, secrets 서브모듈에서 관리되어지는 local, dev, prod 설정 파일을 사용한다.배포 과정에서 develop 브랜치의 파일을 main 브랜치에 Pull Request를

2022년 1월 30일
·
0개의 댓글
post-thumbnail

왜 main에 push 되었지?😠 : git branch protected rule 적용

저번주에 PR을 Merge하는 과정에서 꼬인 부분이 있어 PR을 Close하고 다시 커밋하고 올리는 과정에서 develop 브랜치에서 작업하고 push하는 실수를 범하고 말았다. 프로젝트 초기에 브랜치 보호 규칙을 설정할 때, Require a pull request

2022년 1월 30일
·
0개의 댓글
post-thumbnail

Fetch Join vs 일반 Join(feat.DTO)

💡 Spring Data JPA를 사용하다보면 연관관계를 갖고 있는 두 엔티티에 대해 조회를 할 때 N+1 문제가 발생합니다. 이전 프로젝트를 진행하면서 N+1 문제가 발생할 수 있는 상황에서 직접 @Query에 Join query를 작성하면서 N+1 문제를 직접적으

2022년 1월 27일
·
0개의 댓글
post-thumbnail

Session vs Token

💡 서비스를 구현하면 보통 로그인, 로그아웃, 회원가입 기능이 있기 마련입니다. 그러면 반드시 해야되는 것이 인증/인가에 대한 부분인데요, 인증/인가를 하기 위해 여러 방식들이 존재합니다. 대표적으로 대립되는 개념은 Token과 Session 인데요, 이번 포스팅에서

2022년 1월 19일
·
0개의 댓글
post-thumbnail

Filter와 Interceptor

💡 Spring framework의 내부 동작에 대해서 공부하다보면 Filter와 Interceptor는 뺴놓을 수 없는 요소입니다. 왜 내부 로직에 Filter랑 Interceptor를 뒀을까?를 알고 이를 활용할 줄 알아야 수준 높은 프로젝트를 개발할 수 있을 것

2022년 1월 19일
·
0개의 댓글
post-thumbnail

레이어별 테스트 코드 작성 방법(작성중)

스프링부트에선 크게 2가지 모듈이 웹 애플리케이션 테스트를 위한 기능을 제공해줍니다. spring-boot-test : 핵심 기능 제공spring-boot-test-autoconfigure : 테스트를 위한 자동 설정spring boot 프로젝트에서 spring-bo

2022년 1월 13일
·
0개의 댓글
post-thumbnail

JPA vs Spring Data JPA

JPA와 Spring Data JPA 를 학습하면서 둘 간의 명확한 차이점이 뭐지⁉️ 라는 궁금점이 계속 생겼던 것 같습니다. 이번 포스팅에선 JPA와 Spring Data JPA 가 각각 무엇이고 어떤 것을 우리에게 제공해주는지 구분할 수 있도록 하는 것을 목표로 학

2021년 10월 5일
·
0개의 댓글
post-thumbnail

디폴트 메서드(Default Method)

java 8 이 등장하면서 인터페이스(Interface) 개념에 디폴트 메서드(default method)를 사용할 수 있게 되었습니다. 원래 기존의 인터페이스는 추상 메서드만 존재할 수 있었고 이를 상속받는 구현체에서 직접 해당 추상 메서드를 구현했어야만 했는데요.

2021년 9월 13일
·
0개의 댓글
post-thumbnail

JdbcTemplate(feat.템플릿 콜백 패턴)

JDBC는 Java DataBase Connectivity 의 약자로서 Java에서 데이터 베이스에 접속할 수 있도록 해주는 Java API 인데요. Java 언어를 사용하여 데이터베이스에 접근할 때 일반적으로 사용하는 API입니다. JDBC를 사용하게 되면 defau

2021년 9월 3일
·
0개의 댓글
post-thumbnail

병렬 데이터 처리와 성능

이전 포스팅에서 Java8 에서 등장한 람다에 대해서 배워 보았고, 람다식을 대폭적용시킨 Stream API 에 대해 공부해보았습니다. Stream API는 Collection을 Pipe 구조를 통해 데이터를 처리하고, 기존에 여러 줄로 처리해야하는 로직을 간편한 코

2021년 8월 23일
·
0개의 댓글
post-thumbnail

스트림으로 데이터 수집

개요 > 이전 포스팅에서 Stream API의 최종 연산(Terminal Method)에 쓰이는 Collect 를 간단하게 다뤄봤습니다. Collect는 Collector 타입의 매개변수를 전달받아 원하는 자료구조로 변환시켜주는 기능이 대표적인데요. 이 기능 이외에도

2021년 8월 23일
·
0개의 댓글
post-thumbnail

Java에서의 Multi-Thread 환경 개발

Multi-Thread 환경에서 가져오는 이점이 무엇일까요? 먼저 Thread(스레드)의 개념에 대해서 살펴봅시다. 스레드는 프로세스(Process)의 작업 단위 중 하나 입니다. 만약 스레드가 없었으면 프로세스는 독자적인 메모리를 할당 받고 다른 프로세스의 메모리 영

2021년 8월 20일
·
0개의 댓글