비록 1월 피드들은 몰아서 작성중이지만.. 다시 시작한 2023.. 꾸준함만 가져가자..
개발 관련
- 15 Tips to Become a Java Expert! (영어) (2022/12/16)
- 자바 Expert 가 되기위해 자바의 기본을 더 탄탄히 하고, 디자인패턴들을 학습하고, OOP 를 진정으로 이해하고 (자바는 “객체지향언어”니까), 테스트코드와 다른 라이브러리들을 이해하는 등 15가지 “진정으로 자바를 이해하기 위한 과정”을 소개하는 글
- (글 자체가 영어라서 개인적인 이해도가 완벽하지 않은게 아주 아쉽지만..) 현업에서 스프링을 먼저 접하고 더 깊게 배우면서 그제서야 “내가 알던 자바와 객체지향은 사실 수박 겉핥기 였구나”를 알게되고 자바를 이해하려는 시도들을 하고, 왜 스프링프레임워크가 OOP의 정수라고 불리는지 조금씩이나마 알게된 입장으로 이런 글이 길잡이가 되어주는것이 매우 감사한 글.
- 이것도 몰랐나? 싶긴한데 오라클에서 자바 튜토리얼을 제공해주는지도 몰랐다..
- Spring Batch를 더 우아하게 사용하기 - Spring Batch Plus (2023/01/02)
- 네이버페이 정산 플랫폼에서 Kotlin 으로 Spring batch 를 다루면서 필요했던 기능들을 이른바 spring-batch-plus 라는 라이브러리로 만들기까지 문제였던 상황과, 개발에 필요한 요구사항과 고민들, 해결책들을 담은 글
- 개인적인 평가로 “나도 스프링 배치에 대해 잘 모르고있고, 그냥 간단한 기능만 가져다 쓰는 수준” 이라고 생각하고 있던 상황에 Kotlin 을 좋아하고 지향하지만 정작 Kotlin 으로 Spring batch 를 제대로 작성해본적 없다는 생각을 글로나마 간접적으로 경험해보고 고민해보고 배워가기 좋았던 글
- 실수로 MySQL 데이터를 삭제했을 때 바이너리 로그를 통해 복구하기 (PIT 복구) (2022/12/28)
- (아마도 필자가 MySQL 데이터를 실수로 삭제해버려서) 바이너리 로그에 있는 데이터베이스를 변경 이벤트들을 활용하여 데이터베이스를 특정 시점으로 복구 했던 기록? 에서 알게된 정보들을 공유한 글
- 아직까지 실수로 어마어마하거나 중요하거나 한 데이터를 날려본적이 없지만, 주로 MySQL 을 사용하고있고 “MySQL에는 바이너리 로그” 의 존재도 잘 모르고있던터라 제목도 재밌고 ‘나도 나중에 혹시나..?’ 하는 마음에 읽었는데 재밌던 글
- AOP에 대한 사실과 오해 그런데 트랜잭션을 사알짝 곁들인.. (2022/11/07)
- 필자가 트랜잭션과 Spring AOP 를 사용하는 과정에서 알게된 문제들과 그 해결책들을 정리한 글
- 가볍게 읽으면서 “엥? 이런거 신경도 안쓰고 그냥 개발하고 있었네” 하는 생각도 들고, 만약에 똑같은 상황으로 내부 메서드에서 트랜잭션이 걸리지 않는 상황을 겪었다면 분명 삽질을 엄청했을텐데 미리 알게되어 다행이고(?), 프록시니 자바 리플렉션이니 AOP 니 하는 개념들을 대강만 알고있었지 이게 런타임시점에 적용되는지 컴파일시점에 적용되는지도 정확히 몰랐던게 아직 한참 멀었구나 하는 생각도 든다
- JVM 메모리 구조와 GC (2022/05/11)
- 이종립(기계인간) 님이 자바 공식문서를 통해 JVM 에 대해 이해한 글을 한글로 정리해서 작성하신 글
- 최초 작성일이 무려 2019년도 8월인데 이 글을 이제와서 봤다는게 너무 아쉽기도 하고, 사실 GC 가 이렇게 많은 종류가 있는지도 몰랐고 내용을 완벽하게 다 이해하진 못했지만, 자바에 진심인 사람들은 이정도까지 이해하고 스스로 선택하고 튜닝하는거구나 하는 경외심(?)이 들었던 글
- 생각해보니까, 내가 사용하는 Java version 의 garbage-collection-tuning 문서도 있지 않을까? 했는데 역시나 있어서 첨부해두었고, 개인적으로 JVM 을 공부하면서 가장 도움이 됐던 naver d2 의 포스트와 이 글에서 나오는 “Minor GC - Eden에서 Survivor 영역으로” 포스트도 아래 첨부했다. 개인적으론 ‘분명 코드는 마법이 아닌데, 어떻게 gc는 객체를 old 로 옮길 수 있을까?’ 에 대해 종종 궁금했는데 그 답을 얻을 수 있다.
- also see:
- Javascript 비동기 함수의 동작원리 (feat. EventLoop) (2022/10/8)
- Single Thread기반 언어인 Javascript 에서 어떻게 비동기 로직을 다루고 여러 동작들을 처리하는 것처럼 보이는지 Promise, async & await 등의 동작을 코드와 gif 이미지를 활용하여 잘 설명해주신 글
- “자바 개발자가 무슨 자바스크립트?” 라고 생각할 수 있지만, 최근에 JS 에 대한 공부를 병행하고있고 (백엔드 데이터쟁이로는 아무리해도 사용자와 만나기 한계가 있어서..) 간단히 Vue 를 통해 작업할때는 사실상 JS 에 대한 깊은 이해까진 필요없이 간단히 되는 느낌이었지만, React 나 JS 에 대한 관심이 생기고 공부하다보니 “얘는 원리가 뭐지?”하는 순수한 의문을 전체는 아니지만 알은체 할 수 있도록 이해를 도와준 글
- 사입앱 클린 아키텍쳐 적용기 (2022/12/13)
- “신상마켓” 을 개발한 딜리셔스 개발팀이, 사입사 직원용앱인 안드로이드 “사입앱” 에 클린 아키텍쳐를 적용한 경험을 공유한 글
- 개인적으론 안드로이드, 웹백엔드를 따지지 않고 “최선을 위한 아키텍쳐” 에 대한 고민은 어느 직군이나 하고있다고 생각하고, 나또한 “더 나은 구조” 를 고민하면 듣게되는 “클린 아키텍쳐” 와 최근 유행처럼 들리는 DDD 에서 과연 도메인과 레이어아키텍쳐를 어떻게 정의하고 분할할것인가에 대한 고민을 회사차원에서 고민&시도해보고 적용했다는 점에서 굉장히 흥미로운 글이었다.
- “Learning Curve 아키텍쳐 관점에서 바라보는 구조적 이해가 필요했으며, 이는 높은 러닝 커브를 요구합니다. 또한 멀티 모듈에 대한 이해도가 필요했습니다. 그리고 명확한 Best case의 클린 아키텍쳐를 찾기 어려웠습니다. (내용 발췌)” 많은 장점들을 얻으면 당연히 그렇겠지만 더높은 러닝커브와 고민을 감당해야하고 “더 나은 방법으로 온건 사실이지만 이곳에도 정답은 없었다” 라서 “지금보다 좋게만들 뿐 정답은 없다” 는 것에 공감하게된다
- 좋은 에러 메시지를 만드는 6가지 원칙 (2022/9/21)
- 토스 UX 팀에서 더 나은 유저경험을 위해 에러메시지에 대해 고민하고 그 내용을 공유한 글
- 개인적으로 “거꾸로 입력하는 가입 화면” 등 UX 에 대한 놀라운 경험은 토스 어플을 통해 느끼고있고, “아 여긴 유저 경험을 정말 중요하게 생각하고 고민하는구나” 하는 느낌을 받을 수 있었는데, 해당 포스트 자체는 “어플리케이션을 사용하는 유저에게 어떤 에러메시지가 친절하고 그다음 행동을 별다른 생각이나 오해 없이 사용하도록 도울 수 있는가” 에 대한 글이지만, 난 오히려 나의 클라이언트인 Front-end 에 에러메시지를 전달할때의 사고를 확장하고, 어떻게 창의적이면서 명확하게 전달할 수 있을까 고민하게해준 글
기타 주제
- 12 hand-picked chrome extensions that will change the way you do web development in 2023 (영어) (2023/01/01)
- 개발자의 생산성을 높이는 데 도움이 되는 12가지 크롬 확장 프로그램
- 그냥 지나가는 글로 “괜찮은거 있을라나” 하고 봤는데, 생각보다 재밌고 유익한 익스텐션들이 있어서 도움이 됐다