profile
지나가는 개발자
post-thumbnail

대용량 Excel Download OOM 처리 과정

최근에 우리팀에서 만든 근태관리 서비스가 갑자기 말일에 무슨일인지는 모르겠지만, 서버가 다운되어 있는 상태로 되어있었다…일단 다운된 서버에 어플리케이션을 재 가동시켜 사용할 수 있게 만들긴 했지만 어디서 어떻게 터졌는지 몰랐기에 원인 파악부터 먼저 시작했다…다운된 서버

6일 전
·
0개의 댓글
·
post-thumbnail

우아한 스터디 후기

매주 업데이트 할 예정입니다. 12월 말까지2.4 관련된 데이터와 로직을 클래스로 모으기먼저 순서입니다.데이터 + 비즈니스 로직이 같이 있을 때 장점데이터 + 비즈니스 로직이 같이 있을 때 단점해당 단점을 해결하기 노력 및 단점제 생각이 아닌 다른 분들 해결 방법 의견

2023년 11월 9일
·
0개의 댓글
·
post-thumbnail

MSA Level Up

MSA가 파생되기 전에는 주로 사용하던 아키텍처는 Monolithic(모놀로식) Architecture 입니다.Monolithic Architecture는 모든 애플리케이션의 컴포넌트들이 하나의 단일 패키지로 통합되어 있는 구조를 의미합니다.이러한 구조에서는 화면, 데

2023년 11월 7일
·
0개의 댓글
·
post-thumbnail

내 코드가 이렇게 이상한가요? 2부

이미 존재하는 기능을 다시 구현하지 말자for문과 if문이 동시에 있는 코드는 가독성이 좋지 못합니다.안 좋은 예시좋은 예시anyMatch 메소드를 알고 있으면, 복잡한 로직을 직접 구현하는 것이 아닌 한줄로 처리가 가능하다.조기 Contiune로 조건 분기 중첩 제거

2023년 11월 6일
·
0개의 댓글
·
post-thumbnail

내 코드가 이렇게 이상한가요? 1부

의미를 알수 없는 네이밍은 지향하자클래스, 메소드 등에 번호를 붙히지 않고 어떤 작업을 하는지 기술 중심에 명명법으로 사용하자이해하기 어럽게 많든 조건문은 지향하자예를들어 if문이 하나의 비즈니스 로직에 적게는 5개 많게는 수십개가 들어간 코드를 만들지 말자데이터 클래

2023년 11월 2일
·
0개의 댓글
·
post-thumbnail

우아한 스터디 합격 후기

사실 합격에 대한 기대를 전혀 하지 않았다면 거짓말이지만 나는 이미 여름시즌 우아한 스터디에 지원했을 때 떨어졌던 경험이 있던 터라 기대를 많이 하지는 않았다. 아키텍처 청소부 모집 = 클린 아키텍처 읽고 관련 주제로 이야기 나누는 모임여름 시즌에 지원할 때는 지원

2023년 10월 26일
·
0개의 댓글
·
post-thumbnail

MSA Phase 9. Transaction Complexity

일단 제목을 해석하면 트랙잭션 복잡도이다.제목을 이렇게 지은 이유는 트랙잭션 처리에 대한 고찰(?)을 하고 난 뒤 나의 경험을 기반으로 한 내용들을 정리하기 위함이다.MSA Phase 5. Transaction 내가 쓴 블로그이다. 한번 읽고 시작하는게 편할 것 이다.

2023년 10월 24일
·
0개의 댓글
·
post-thumbnail

MSA Phase 8. CQRS

MSA의 태생적인 한계모든 서비스는 각 프로덕트로서 도메인을 책임진다.서비스/도메인 간 협럽과 디펜던시가 지양된다.또한 각 서비스의 DB는 각 서비스를 통해서 접근해야한다. (데이터 오너쉽)지금까지의 쿼리는 각 서비스내에서 모두 처리가 가능한 정도의 쿼리였다.하지만 프

2023년 10월 19일
·
0개의 댓글
·
post-thumbnail

MSA Phase 7. API Document(2) - Spring Rest Docs + Swagger UI

이전 블로그에서 우린 Spring Rest Docs는 도입하였다. 아래는 해당 블로그이다.https://velog.io/@devty/MSA-Phase-7.-API-Document1-Spring-Rest-DocsSpring Rest Docs을 도입해보니 경험에서

2023년 10월 2일
·
0개의 댓글
·
post-thumbnail

MSA Phase 7. API Document(1) - Spring Rest Docs

기존에는 Spring Swagger를 사용하여 개발을 하였는데, 프로덕션 코드에 직접적인 영향을 미치기에 코드가 너무나도 지저분해지는 걸 느낄수 있었다.위와 같이 간단한 회원가입 로직인데 스웨거에 대한 코드가 많은 비중을 차지하고 있다.그리고 Swagger는 Postm

2023년 10월 2일
·
0개의 댓글
·
post-thumbnail

MSA Phase 6. TDD(3) - JaCoCo

여태 앞서 우리는 테스트 코드(단위, 통합)를 짰다.그럼 우리는 이제 테스트 코드가 어디까지 본 코드에 대한 테스트를 진행했는지 파악해야하지 않은가?중간중간 놓치는 부분이 있을 수도 있다. → 사람이 하는 일이라 어쩔수 없음그래서 우리는 테스트 코드에 대한 테스트 커버

2023년 9월 24일
·
0개의 댓글
·
post-thumbnail

MSA Phase 6. TDD(2) - Integration Test

통합 테스트(Integration Test)는 소프트웨어 개발 과정에서 여러 시스템이 서로 상호작용하며 원활하게 작동하는지 확인하는 테스트 방법이다.이는 단위 테스트(Unit Test)가 개별 컴포넌트의 기능을 테스트하는 것과는 달리, 통합 테스트는 여러 컴포넌트가 함

2023년 9월 21일
·
0개의 댓글
·
post-thumbnail

MSA Phase 6. TDD(1) - Unit Test

사실 이 부분은 MSA가 아니고 Monolithic Arch에서도 많이 사용하는 기법이다.처음 도입을 생각했던 건 그 전에 했던 프로젝트에서는 모놀로식 아키텍처를 사용하였는데, 그 프로젝트가 커져가는 과정중에 운영서버에 배포 후 테스트하는 것이 매우 어려웠다.배후 후에

2023년 9월 19일
·
0개의 댓글
·
post-thumbnail

MSA Phase 5. Transaction

Transaction은 일련의 작업 단위를 의미한다.데이터베이스 관리 시스템(DBMS)에서 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 수행되어야할 일련의 연산들을 의미한다.원자성(Atomicity)트랜잭션이 데이터베이스에 모두 반영

2023년 9월 12일
·
0개의 댓글
·
post-thumbnail

MSA Phase 4. Service to Service Communication

해당 링크에는 선택과정과 큰 틀에 대한 이론이 정립되어 있다. 한번 보고 오면 도움이 될 것이다.https://velog.io/@devty/엉금엉금-Kafka-도입기앞으로는 공부할 때 해당 라이브러리, 플랫폼, 툴 등에 대한 아키텍처를 먼저 확인 후에 전체적인

2023년 9월 11일
·
0개의 댓글
·
post-thumbnail

MSA Phase 3. Common Module

MSA에서는 대게 도메인 서비스 별로 서비스가 나눠져있다.예를 들어 유저, 주문, 배송, 상품에 대한 서비스가 나눠져있다고 생각해보자해당 서비스에는 공통적으로 몇가지가 사용된다.예를 들어 유틸리티(util), 예외 처리, 인증 및 인가에 대해서 공통적으로 사용된다.이런

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

배치 프로그램 튜닝

사내에서 사용하는 배치로 돌리는 작업이 기존에 4시간이 걸리는 작업이었다.4시간 동안 해당 서버는 그 배치로 인해 다른 작업이 불가능 상태이고 4시간은 너무 긴 시간으로 파악되어, 4시간에서 최소 1시간으로 줄여보기 위해 작업을 시작하게 되었다.데이터 베이스 최적화데이

2023년 9월 4일
·
1개의 댓글
·
post-thumbnail

MSA Phase 2. DDD

MSA가 추구하는 방향성에는 밑과 같다.Strong Module Boundaries (명확한 모듈 경계)DDD(Domain Driven Design) 패턴에 바운디드 컨텍스트(Bounded Context)을 이용하여 서비스간 결합도를 낮출수 있다.Independent

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

MSA Phase 1. Springboot(2)

앞 내용을 보고 오는 것을 추천합니다. MSA Phase 1. Springboot(1) Client가 Request를 날려준다.Gateway에서 Eureka에 등록된 서비스인지 확인한다.매번 Request 때 마다 확인하는 것이 아니라 30초(default)에 한번

2023년 7월 24일
·
0개의 댓글
·
post-thumbnail

자바 버전에 대한 고찰

Springboot 3.0 부터는 Java 버전이 17이상이 필수로 변경이 되었다.이런 문제로 인해 Java에 어떤 버전을 사용해야하는지 고민하게 되는 기점이 되었다.Java 버전에 자주 사용하는 버전은 다음과 같다. UntitledJava 8 (72% → 60%)J

2023년 7월 24일
·
0개의 댓글
·