벌써 2021년도 한 해가 지나가고 있다. 2021년은 재밌었다. 우아한테크코스를 빼고 말할 수 없을 정도로 10개월 또는 그 이상 너무 재미있게 했다. 뿐만 아니라 스스로에게도 새로운 도전을 실험하는 한 해 였다고 생각한다. 실제로 생각보다 새로운 일들을 많이 했고, 좋은 기회들이 많았다. 재미있었다. 무언가를 할 때, 목표를 위해서 나아가기만 하는 것이 아니라 그 과정을 즐기면서 나아갈 수 있다는 것을 알게 되었다. 새로운 경험 코드스쿼드 1개월 우아한테크코스 10개월 과정 개발 프로젝트 진행(GPU내껀데, 우아한테크코스 지원플랫폼) jtbc 다큐 인터뷰(티비 나왔다😎), 관련 인터뷰2(정부에서 코딩교육 관련이었는데 기억이 안 난다ㅠㅠ) 테코톡 가상메모리 발표, 유스콘 발표(처음으로 하는 대외 발표)..
Transaction은 스프링에서 AOP로 동작하여 연결과 커밋, 롤백등을 관리한다고 한다. Transaction 내부코드를 보다보니 어떻게 AOP로 동작하는지 확인이 어려웠다. 먼저 간단한 AOP만들기를 시작으로 좀 더 내부를 파헤쳐보려고 한다. 1. AOP, 프록시 이해하기 횡단 관심사를 분리하기 위해서 AOP를 사용한다. AOP를 사용하기 위해서는 프록시 패턴을 사용한다. reflection을 사용하는 DynamicProxy 방식과 byte 코드를 조작하는 CGLIB 방식이 있다. AOP에서 사용되는 용어 Target: 어떤 대상에 부가 기능을 부여할 것인지 Advice: 어떤 부가 기능을 부여할 것인지 Join Point: 어디에 적용할 것인지 Point Cut: 실제 Advice가 적용될 시점을..
왜 findAll이 JPQL인가라는 의문점을 가지게 되었는지에 대해 설명하며 파헤쳐본 내용들을 정리해보려고 한다. N+1은 왜 발생하는가? JPQL을 실행하면 JPA는 이것을 분석해서 SQL을 생성한다. 이때는 즉시 로딩과 지연 로딩에 대해서 전혀 신경 쓰지 않고 JPQL만 사용해서 SQL을 생성한다. (...) SQL의 결과 수만큼 추가로 SQL을 실행하는 것을 N+1문제라고 한다. - 자바 ORM 표준 JPA 프로그래밍(책) N+1문제는 JPQL을 사용할 때 나타날 수 있는 문제라고 한다. JPQL은 무엇인가? 처음에 나는 개발자가 직접 repository에 쿼리 메소드로 작성하는 메소드만 JPQL이라고 생각했다. 하지만 미션을 하다보니 findAll 메소드에서도 N+1이 발생하는 것이었다. 뭔가 이..
유스콘(2021.12.19 일)에서 발표를 했다. 우아한테크코스에서도 발표를 많이 한 것은 아니었지만, 가상메모리에 대해 정리하고 테코톡을 발표했던 과정이 재밌었다. 준비를 하며 스스로 정리되는 부분이 많았다. 제작근로 했던 내용에 대해 처음에는 테코톡의 느낌으로 얘기가 오갔지만 유스콘에서 발표를 할 수 있게 되었다. 앞으로 외부 환경에서도 발표를 해볼 수 있는 그 시작이 되었다고 생각한다. 회고 우아한테크코스를 마무리하고, 면접 준비 및 취업준비를 하면서 아마찌와 함께 준비해나갔다. 문서화하여 작업하고 대본짜고 구성을 하는 방식이 쉽지 않았다. 발표 주제를 명확히 하려고 했다. 기술적인 내용은 배제한 채, 팀 프로젝트를 하는 것이 익숙하지 않은 예비 개발자들에게, 내년에 근로를 할 4기 크루들을 위해 ..
mvc, jdbc 등을 몇 개 내부코드를 살펴보았지만 아직 스프링 내부의 코드를 보는 것이 그렇게 익숙하지는 않다. Transactional 어노테이션과 관련하여 스프링에서는 트랜잭션이 어떻게 동작하는지 내부를 조금 확인해본다. DataSourceTransactionManager 아래의 코드를 보면 커넥션 맺기부터 시작하여 Transactional 어노테이션이 가지고 있는 여러 옵션들을 셋팅해주는 메소드가 있는 것을 알 수 있다. Transaction마다 커넥션이 새로 생성되는가에 대해서 크루들과 얘기해본 적이 있는데, 학습테스트를 진행한 결과에서는 propagation 설정을 주고 여러 트랜잭션을 호출할 때에도 내부 트랜잭션이 생길 때에도 커넥션이 새로 생성되었다. 그 근거로 이 내부코드에서 Trans..
우아한테크코스 그 전 개발을 처음 혼자 공부하며 시작했다. 그 당시를 돌이켜보면 무모한 도전이었다. 하지만, 사람이란게 뭐 구체적인 이유 없이도 왠지 해야할 것 같은 그런 생각에 하게 되는 일들이 있지 않은가. 개발을 공부하지 않으면 나중에 두고두고 후회할 것 같은 느낌이었다. 퇴사하고 시~작! 유투브를 보거나 입문 강의들을 보면서 프론트와 관련된 공부를 시작했었다. html을 처음 만들어보고 3개월쯤 되었을 때, 체계적으로 공부해야할 필요를 절실하게 느꼈고 주변에 같이 방향성을 잡아나갈 동료가 필요했다. 즉, 혼자 공부해나가는게 버거워질 시기였다. 당시에 개발을 공부하는 사람은 내 주변에 아무도 없었다. 개발자들을 어떤 생각, 사고방식을 통해서 개발을 하는 건지, 코드를 작성하는 건지 궁금했다. 그래서..
한정된 시간 속에서 어떻게 하고 싶은지 선택하는 시기였다고 생각한다. 레벨4 아마 할 일이 가장 넘쳐나는 시기였다고 생각한다. 과거보다 많이 성장했고, 내가 얼만큼 정도로 얼마나 처리할 수 있는지 스스로 판단이 되어갔던 것 같다. 그래서 할 일에 비해서 과거보다 덜 바쁘게 느껴졌을 수도 있다. 취업 준비의 시작 코딩테스트를 거의 6주 동안 매주 봤다. 처음엔 많이 떨렸고, 점차 부족한 실력이었지만 실전을 통해 알게 모르게 늘고 있는 것 같다는 느낌을 받았다. 이때 코딩테스트를 준비하면서 알고리즘 문제를 더 풀 수도 있었지만, 그건 만약에 취업이 안되서 내년까지 가게 되더라도 스스로 준비하고 그때도 준비할 수 있는 부분이라고 생각했다. 우테코에서 제작근로, 미션, 팀플과 관련한 AWS 사용 등은 지금이 아..
- Total
- Today
- Yesterday
- TCP/IP
- 월간회고
- python
- 카카오
- 우아한테크코스
- 인증
- JS
- java
- 모의면접준비
- 운영체제
- 알고리즘
- 마스터즈코스
- JPA
- javascript
- 네트워크
- TIL
- DB
- 객체지향
- React
- Spring
- OS
- CS
- 내부코드
- 개발공부일지
- 우테코수업
- 회고
- 글쓰기미션
- Transaction
- 학습로그
- 코드스쿼드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |