일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Oracle
- Kubernetes
- 뷰
- cd
- DevOps
- 알고리즘
- programmers
- java
- CKA
- docker
- superBuilder
- Spring
- CI/CD
- 해시맵
- 프로그래머스
- SpringMVC
- 코딩테스트연습
- builder-pattern
- CI
- ORM
- vuejs
- Vue
- hibernate
- IntelliJ
- 자바
- JPA
- k8s
- map
- Di
- dabase
- Today
- Total
목록전체 글 (110)
문홍의 공부장
@Transactional의 동작 원리 @Service @RequiredArgsConstructor public class UserService { private final UserRepository userRepository; @Transactional public void save(User user){ userRepository.save(user); } } @Transactional 을 붙이면 일어나는 일 Spring Configuration 에 @EnableTransactionManagement 어노테이션 추가 (Spring boot 에서는 auto configuration 됨) Spring Configuration 에서 Transaction manager 지정 @Transactional 이 붙은 ..
Spring AOP 이해하기 예전에 면접에서 "@Transactional의 동작 원리에 대하여 설명해주세요." 라는 질문을 받은 적이 있다. 당시에 제대로 답변하지 못했고, 이를 계기로 Spring AOP 에 대하여 깊게 이해하려 하지 않았다는 점을 깨달았다. 정리해야지 생각만 하고 미뤄뒀었는데 이번 기회에 개념을 다잡아보고자 한다. AOP (Aspect Oriented Programming) ? AOP(Aspect Oriented Programming; 관점 지향 프로그래밍) 는, 횡단 관심사(cross-cutting concerns) 를 분리함으로써 모듈성을 높이는 것을 목표로 하는 프로그래밍 패러다임이다. 이는 코드 자체를 수정하지 않고, 기존에 존재하는 코드에 동작을 추가하여 수행하는 방식이다. ..
@Primary 와 @Qualifier 스프링 애플리케이션에서, 같은 타입의 빈을 두 개 이상 사용할 때 @Primary 혹은 @Qualifier 을 사용한다. 두 어노테이션의 기능과 공통점/차이점을 정리하고, 어떻게 사용하는 것이 효율적인 사용법인지 정리해보자 한다. Primary @Primary 는 같은 타입의 빈을 2개 이상 생성할 때, 하나의 빈에게 더 높은 선호도(higer preference) 를 부여하기 위해 사용한다. Simply put, we use @Primary to give higher preference to a bean when there are multiple beans of the same type. 왜 @Primary 가 필요할까? 스프링 컨테이너가 올라갈 때, 스프링은 컴..
프로그래머의 뇌 이 책은 인지과학에 기반을 둔 각종 방법론으로 개발자가 새로운 언어나 프레임워크를 빠르게 배워 생산성을 향상하도록 돕는다. 코드를 더 잘 이해하는 것에서 나아가, 버그 방지, 명확한 작명법, 리팩터링, 대규모 코드베이스 개선에 이르기까지 과학적으로 입증된 기법을 제시한다. 저자 펠리너 헤르만스 출판 제이펍 출판일 2022.01.12 프로그래머의 뇌: 훌륭한 프로그래머가 알아야 할 인지과학의 모든 것 1. 코딩에 영향을 주는 인지 과정: LTM 과 STM 혼란의 3가지 유형은, 기억과 관련이 있다. - 지식의 부족 = LTM 의 문제 - 정보의 부족 = STM 의 문제 - 처리능력의 부족 = 작업 기억 공간의 문제 코드를 분석할 때 읽는 내용은 STM 에 저장되며 동시에 몇 개월 전에 구현..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/sHJub/btr9C40ahLt/ZTCMkzjhhvcqzGK8u2vrV1/img.jpg)
새 프로젝트 킥오프 아키텍쳐 고민 새로이 시작하는 프로젝트의 아키텍쳐를 함께 고민했다. 이미 존재하는 서비스의 아키텍쳐와 함께 갈 수 있는 방향을 고려하기 위해 많은 논의가 오갔다. 결과적으로 기존 아키텍쳐 안에 우리의 신규 서비스를 녹여 내는 것에 성공 했으나, 한편으로는 오버 엔지니어링 된 것이 아닌가 하는 우려도 있다. 기존 서비스와 신규 서비스를 하나로 묶어 고객에게 제공한다면 메리트가 있지만, 우리 서비스만을 단독으로 제공한다면 좀 과한 아키텍쳐가 아닌가 싶다. 하지만 WEB - WAS - DB 의 가장 기본적인 아키텍쳐만 생각하다가, RabbitMQ, MQ consumer, core agent 등 다양한 것들이 유기적으로 동작하는 아키텍쳐를 보는 것은 처음이라 어렵지만 재미있기도 했다. 4년차..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bcllTu/btr8ne5brX8/CCzwYqkLcoWkOlTRpwqAGk/img.jpg)
위민후코드에서 행사를 한다기에 신청해서, 저번 주말 다녀왔다. 결론부터 말하자면 아주 뜻깊은 시간이었다. 연사님들의 강연을 들으며 동기부여도 많이 되었고, 임파워링 되는 것을 많이 느꼈다. 또, 조별로 네트워킹 시간을 가지며 여러 사람들의 이야기를 듣고 고민거리를 나눈 것 역시 너무나 소중했다. "Accelate Your Global Career"라는 대주제 안에서 두 연사님들의 강연이 있었다. 1. 한기용 연사님의 1. 커리어의 전반기와 후반기 커리어의 전반기에는 내가 하고 싶은 것, 재미있어 보이는 것을 따라가고, 커리어의 후반기에는 전반기의 경험을 통해 알게 된 내가 잘하는 것을 따라가라. 2. 파랑새는 없다 '이것만 하면 성공할거야. 더이상의 고민은 없고 탄탄대로일거야' 라는 생각을 하겠지만, 세..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b4AZzn/btr72Yaw6r4/RT9mOGjkkWog9VyMI5qsC1/img.png)
Index의 개념 인덱스란, 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 우리가 사전을 이용해 단어를 찾을 때, index 라는 단어를 찾기 위해 a 부터 찾기 보다는, 알파벳 별로 색인을 두고 i 에서 시작하는 것이 효율적이다. (요즘은 영어사전 세대가 아니라고 하던데.. 허허) 이와 같이 대용량 데이터베이스를 조회 시 인덱스를 생성하여 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있다. 장단점 장점 조회 성능 향상 시스템 부하 개선 단점 인덱스 관리를 위한 DB 내 저장 공간 필요 관리 포인트 증가 잘못 사용될 경우 오히려 성능이 저하될 수 있음 Index 의 자료구조 인덱스를 구현하기 위해 다양한 자료구조를 사용할 수 있다. 대표적으로 해시 테이블과 B-..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/BWEAs/btr3kw9os1w/PHZsJiVZIt8buWmd6ZhdK0/img.jpg)
2월 회고가 늦었따 ## 1. 프로젝트 종료 후반부에 가니 수정사항이 계속 나와서 아주 지리멸렬하였다. 전 담당자가 컨펌해준 일을 현 담당자가 수정을 요청하기도 하였고, 프로젝트 종료일이 다가오니까 여태까지는 신경도 안쓰던 부분을 체크하면서 이제사 의문을 제기하기도 하고.. 더군다나 2월부터는 부분적으로 컨택 포인트가 되어서 종종 결정해야 하는 사항을 나에게 물어오는 일들이 생겨서 좀 부담스럽기도 했다. 물론 나는 혼자 결정할 수 없는 사람이니 파트리더님한테 컨펌받고 진행되기는 했지만..! 인수인계 교육도 성공적으로 마쳤다! 다른 교육 하는 거 어깨 너머로 보았을 때 질문의 정도가 꽤나 대중없길래 약간 긴장했는데 그래도 어찌저찌 잘 넘어감 '-') 이런 일들을 해보면서 느낀 게 1. 개발자가 개발만 할 ..