LostCatBox

LostCatBox

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

2024년을 마무리 하며...(2025년 목표)
2024년 목표 체크리스트 달성률개발 목표 달성률 (50%), 비개발 목표 달성률 (50%) 2024년은 회사에서 치이고, 계속 같은 일을 반복했다.그나마 백엔드 개발자 2년차쯤 되니까 개발에 대한 욕심이 점점 생겨서 새로운 코틀린 언어도 시작해보고, 디자인 패턴 적용, TDD, DDD 등을 학습하면서, 성장에 대한 욕구를 좀 채웠던거같다. 하지만 회사에 퇴사자가 많아질수록, 내 시간은 줄어들었다. 결국, 나 또한 더 큰 성장을 위해 현재를 포기할 필요가있었다. 우연한 계기(집안사정)로 인해 11월정도에 퇴사를 하게되었고, ...
(책읽기) 만들면서 배우는 클린 아키텍처
왜? 클린 아키텍처는 무엇인지? DDD에 대한 추가적인 학습. 용어정리 계층형 아키텍처: 웹 -> 도메인 -> 영속성 등 각 계층을 책임에 따라 분리후 역할 기능만 수행한다. 클린 아키텍처: 의존성 방향이 내부방향(도메인)로만 이뤄져있는 구조. 외부 애플리케이션이나 기술 등에 의존되지 않으며, 비즈니스 규칙 생성 및 테스트하기 좋은 구조 1. 계층형 아키텍처의 문제는 무엇일까? 전통적인 계층 구조는 웹 → 도메인 → 영속성 웹: 요청을 받아 도메인 혹은 비즈니스 계층에 있는 서비스로 요청 역할 도메인: 필요한 비...
(책읽기) 도메인 주도 설계란 무엇인가
용어정리 도메인 세상의 어떤것 현실의 문제점을 해결하기 위한 문제들 모델 대상 도메인의 내부적인 표현(설계, 개발 등에 활용) 유비쿼터스 언어 분야와 상관없이 전반적으로 활용될 공통된 언어 집합 데이터를 변경할 때 하나의 단위로 간주되는 관련된 객체들의 집합(root) 왜? DDD가 왜필요한지 알기위해 (책리뷰) 도메인 주도 설계란 무엇인가? 서문 도메인 주도 설계를 하면, 기술 변화가 일어나도, 도메인의 변경점은 없다. DDD를 널리 알리고싶었다 1. 도메인 주도 설계란 무엇인가? 현실의 문제들을 푼다 →...
Spring-Servlet과 Spring-Webflux 특징
참조 블로그 블로그2 servlet과 webflux 요약설명 servlet 기존 서블릿 구조는 블록킹&&동기적을 기존구조로 동작한다 따라서 아래처럼 request 1개당 1개의 Thread를 활용하는 구조이다. Thread per request model Servlet Connector를 BIO에서 NIO로 변경하면 쓰레드 idle 시간을 20~30% 줄이면서 connector -> Servlet 쓰레드 할당 시점에 성능을 다소 올릴 수 있지만 Thread 할당 시점 이후부터는 다시 thread pe...
SpringSecurity + jwt를 이용한 인증, 인가
참고자료 https://colabear754.tistory.com/171 https://innovation123.tistory.com/196 스프링 시큐리티 getStart refresh토큰 정책 Basic Authentication 유저가 접속 시도시 -> BasicAuthenticationFilter 에서 UsernamePasswordAuthenticationToken를 생성(HttpServletRequest에서 username, password 추출 및 객체화) UsernamePasswordAuthent...
코틀린 기본 문법
참조 open,internal, data class 참조1 코틀린 특성JAVA와 비슷한점 OOP 등 4가지 기본 원칙 JAVA와 다른점getter, setter 클래스 속성에는 기본값으로 getter, setter가 기본값(public)하게 붙는다 var의 경우 getter, setter val의 경우 getter 하위방식으로 필드값에 대한 getter, setter가 설정가능하다. 1234567891011121314var speakerVolume = 2 get() = field set(value) ...
Spring Transactional에 대한 5가지 옵션
왜? 코드리뷰 당시에 @Transactional 에 대한 5가지 옵션에 대해서 각 설명을 해야하였으며, 지식의 부족함을 느꼈다. @Transactional(readonly=true) 등의 옵션에 대해 각 특성을 확인해보자 @Transactional의 주요 옵션들 propagation: 트랜잭션 전파 방식을 정의합니다. REQUIRED: 현재 트랜잭션이 존재하면 참여하고, 없으면 새로운 트랜잭션을 시작합니다. REQUIRES_NEW: 항상 새로운 트랜잭션을 시작합니다. 현재 트랜잭션이 존재하면 일시 중단됩니다. NESTED: ...
자바 주니어 개발자를 위한 강의
왜?간단하게 자바 주니어가 가르침 받아야할 목록 정리(요약) 출처 인프런강의 섹션1컨벤션 Get 은 인스턴스 반환, Find는 Optional 반환 isExist -> exist활용하기 (동사는 하나만) Getter, setter 객체에 난발하지마라 객체는 자율적이고 객체지향적으로 코딩하자 user.setUserStatus(UserStatus.ACTIVE) -> user.login() 객체에 일을 시키자 Optional 사용하자 -> NPE 줄어듬 Collection.Map 남발하지마라 -&g...
TDD-테스트코드 도입기
왜? 테스트 코드는 불필요하다는 분위기가 형성되어있었고, SI, SM을 위주로 하다보니, 개발 시간이 우선순위가 높으므로, 유지보수, 안정성은 고려대상에서 제외되었다. 하지만 내가 개발하고 싶은 방향은 유지보수+안정성확보+테스트코드를 통한 걱정없는 배포! 을 위한 개발을 하고싶었다. TDD란? RED : 실패하는 테스트를 먼저 작성한다 GREEN : 실패하는 테스트를 성공시킨다. BLUE : 리펙토링한다. TDD 특징 및 장점 깨지는 테스트를 먼저 작성 -> 메서드(행동) 및 인터페이스에 대한 생각 강제된다. What...
Virtual Thread VS CompletableFuture
왜? 면접 질문에서 Vertual Thread 에 대한 질문을 받음. 답변하지 못함. CompletableFuture는 기존 사용하던 비동기 API 였다. 둘을 비교해보고 특성을 정리해본다 참조 망나니 개발자님 블로그 Vertual Thread VS CompletableFuture 차이 OS Thread VS JAVA Thread 기존 CompletableFuture 특징 비동기 작업 — 결과를 기다리는 동안 메인 스레드를 차단하지 않습니다. 콜백 — future가 완료될 때 실행할 콜백을 등록할 수 있습니다. 연...
avatar
lostcatbox
내 생각을 자유롭게 만들 때까지
FRIENDS
friendA friendB