LostCatBox

LostCatBox

내 생각을 자유롭게 만들 때까지

책읽기-개발자-온보딩-가이드
왜?새로운 회사에 들어가기 전, 회사의 팀에 소속되어, 원활한 협업 문화와 지속가능한 소프트웨어를 개발할 줄 아는 동료가 되고 싶어서 (내가 기억하고 싶은 내용 위주로만 작성) 소통 주의점문서 읽는 습관은 몸에 배야 한다. 팀 문서와 설계 문서부터 꼼꼼히 분석하자. 제대로 질문하자 스스로 문제를 먼저 해결해보자 (문제 해결을 위한) 제한 시간을 정하자 자신이 시도한 방법을 공유하자 비동기식 멀티캐스팅 의사소통을 하자. 레거시 코드 변경 주의점레거시 코드 변경 알고리즘을 활용하자 변경 지점을 확인한다 테스트할 지점(수...
2025년을 마무리하며(2026년 계획포함)
2025년 회고2025년 개발 목표 달성 여부 2025년 회고매우 행복한 일도 많았고, 매우 힘들었던 일도 많았다. 그래도 잘 버텼고, 멋있게 이겨냈다. 2025년 올해 가장 행복한 일은 무엇보다 평생의 내 동반자가 되어줄 “밤토리씨🌰” 를 만났다는 것이다. 나의 지금까지 삶의 방식은 내가 임의로 설정한 목표라는 틀 위에서 세상을 끼워맞추기 위해 노력하고, 이를 통해 인생의 불확실성을 해소할 수 있다고 생각하였다. 그래서 목표를 달성하려고 근본적으로 누군가에게 쫒기듯 열심히 살았고, “언젠가는 이뤄낸 결과들로 거대한 행복을...
(책읽기)도매인 주도 설계 시작하기
왜? DDD 개발 예시를 알기위해서 DDD의 정확한 예시를 알기위해 도메인 모델 시작하기 도메인 = 문제의 영역 도메인 모델 -> 엔티티와 밸류로 나눔 엔티티 - 식별값이 존재 setter를 제공하지않고, changeXXX, close() 등의 다양한 목적를 나타내는 행위를 정의한 메서드로 제공하자. 예시 - Order, Delivery 밸류 - 식별값이 없음 밸류는 불변 객체를 원칙으로 설계하고, 매번 새로운 객체를 반환하도록 한다. 예시 - Money, Address, OrderItem 아키텍처 개요계층...
클로드 코드 공부
왜? Claude Code 생성 파일 및 저장 위치/init 실행 시 생성되는 파일 your-project/ └── .claude/ └── CLAUDE.md # 프로젝트 메모리 파일 CLAUDE.md - Claude가 프로젝트를 이해하도록 돕는 메모리 파일입니다: 프로젝트 구조, 코딩 표준, 자주 쓰는 명령어 등 기록 Git에 커밋되어 팀원과 공유 가능 프로젝트별 설정 (.claude/ 디렉토리) your-project/ └── .claude/ ├── CLAUDE.md ...
about-java-stream-api
개발자 도서 추천전부 다 본건 아님 전반적으로 평이 좋은 책과 강의들을 기반으로 구성했고, 목차를 기반으로 가이드 작성했음 틀린게 있으면 지적해줘 개인적으로 강의만으로 공부하는건 추천하지 않아 뭔가를 쉽고 빠르게 이해할때는 강의가 좋은데, 디테일한 내용이나 추가 학습은 책을 따라가기 힘들다고 생각하거든 하나를 선택해야만 한다면 책을 추천하고, 책이 어렵고 힘들다면 강의랑 병행하는게 어떨까 싶어 추천 강의는 전부 다 김영한님 강의야 강의쪽은 내가 아는게 별로 없고, 김영한님이 가장 유명해서 이렇게 정리했어 사실 이 글에서 강의를...
DDD관점에서의 Entity 와 VO에 대해서
왜?DDD관점에서 도메인 및 비즈니스 로직 설계 시 도메인 모델은 크게 Entity와 VO로 구성되며, 이때 Entity, VO를 구분하기 위해 특성을 기록해놓는다. Entity란?Entity는 “고유한 식별자에 의해 특정된다”라는 특징을 가지고 있다. 생명 주기 동안 연속성을 가지고, 독립적으로 동일성을 유지하고있다면, Entity이다. 그렇다면 Entity 는 어떤 조건들에 의해 VO와 구분되는지 알아봅시다. ID로 구별되는 동등성 -> 반드시 ID값을 갖는다. 가변성 : ID를 제외한 속성값들은 생명주기 동안 변...
Transaction 전파단계와 TransactionManager에 대해서
참조 참조1 참조2 참조3 왜 spring 에서 전파단계를 학습하여, Transaction을 더 잘 다뤄보자 JDBC, JPA 의 차이를 알아보자 사전 지식 JPA → ORM 표준 스펙(인터페이스 규격) → EntityManager, EntityManagerFactory, EntityTransaction 같은 인터페이스 정의만 함. Hibernate → JPA 구현체 + 자기만의 ORM 프레임워크 → JPA가 정의한 EntityManager 인터페이스를 구현하고, 내부에서 SQL 만들고 실행함. EntityMana...
about-ADR
참고자료 ADR 참고자료 ADR 예시 왜? 서비스를 개선함에 따라, 왜 이런 결정을 했었는지 남겨놓기 위해서 ADR? 의미 : Architecture Decision Recode의 줄임어. 어떤 문제, 이슈들에 대해서 어떻게 결정되었는지 남기는 문서 구성 Title Status Context Decision Consequences Title ADR에 대한 제목 Status 해당 문서의 상태를 나타낸다 예시 : Proposed, accepted, rejected, deprecated, superseded Contex...
Entity id 생성 방식 정리
Entity id 생성 방식 정리빠른 ID 생성 특징 엔티티가 생성되기 전 ID 정책에 따라서 직접 생성된다. key를 시스템에서 만들어낸다는 것은 기본적으로 충돌 내성이 필요하다 예시 도메인 모델에서 직접 generateId() 를 호출하여 ID를 발급 엔티티 생성하기 전에 먼저 DB에게 getNextId() 호출해서 ID를 발급 식별자 생성을 위한 BoundedContext를 만들고, 분산 환경에서도 유일한 ID 생성 장점 엔티티가 DB 저장 전이라도 도메인 이벤트 발행 시, id값이 포함될 수 있다 단점 직접 ...
(책 리뷰) it 영어 온보딩 가이드
책을 읽은 이유 과거에 발생한 문제 설명 상황 : 메시지 발송 자동화 프로그램 개발 당시, 메시지 발송 전에 메시지 객체를 구성해주는 서비스를 MessageCombineService 로 명명하였다 문제: Combine의 의미는 단순히 단어 및 문장을 결합하는 의미이다. 이로 인해 팀원들이 MessageCombineService를 단순히 안내 문구들을 조합해주는 서비스로 오인하였다. 원인: 해당 서비스의 책임은 안내 문구 작성 및 메시지 객체를 구성해주는 역할을 하고 있었다 해결: 기존 서비스명에서 메시지를 구성해주는 기...
avatar
lostcatbox
내 생각을 자유롭게 만들 때까지
FRIENDS
friendA friendB