본문 바로가기

전체글139

2021 개인 리뷰 2022년이 됐고 회사 평가도 끝난 시점에서 나를 돌아보고 점검하는 리뷰를 가져보고자 한다. 먼저 작년에 팀을 옮겼다. 큰 단위 조직은 같았지만 새로운 팀에서 하는 일과 기술스택은 많이 달랐다. 주니어부터 시니어까지 모두 실력있고 열정적인 팀이고 업무강도가 높았다. 네이버페이 아키텍처 개선 프로젝트는 매력적인만큼 쉽지 않은 도메인이다. 하지만 문제 해결을 위해 단합이 되어 있고 기술 공유가 활발했다. 빠르게 적응하면서도 기술들을 내것으로 만드려고 노력했다. 그래서 업무 후 공부하고 정리한걸 세보니 25개나 됐다. 여러 api 결과 조합(with 비동기) 테스트에서 사용하는 fixture monkey 정리1 테스트에서 사용하는 fixture monkey 정리2 spring requestParam 이슈 정리.. 2022. 1. 30.
프로그래밍 심리학 다른 팀 리더분이 이 책을 선물해 주셨다. 기술적인 내용보다는 프로그래머에 초점이 맞춰진 책이다. 이 책이 유명한 것은 알고 있었지만 그동안 읽어볼 생각은 안했다. 지금도 통하는 주제를 다룬다고는 하지만 40년 세월은 무시할 수는 없는거 같다. 천공카드, 코볼, 포트란 이야기는 이해는 되도 와닿지는 않았다. 와닿지 않으니 재미가 떨어졌다. 지금은 기술 뿐만 아니라 개발 문화도 많이 발전했다. 발전한 만큼 새롭게 생긴 문제들도 많은데 그런 이야기를 다뤘다면 더 재밌었을거 같다. 읽으면서 나에게 도움이 될만한 부분들을 살펴봤는데, 아래 질문들에 대한 내 생각을 정리해보면 좋을 거 같아 이 리뷰 글을 작성했다. 8장 개인의 성격(p293) Q) 프로그래머로 일하는 데 가장 도움이 되는 당신의 성격은 무엇이라 .. 2022. 1. 26.
ObjectMapper 1. serialize/deserialize 이슈 EDA 기반에서 메세지들의 serialize/deserialize 는 특히 더 주의해야한다. 시스템들이 분산 되어 있기 때문이다. 예를 들어 아래 그림 System1 에서 serialize 하고 메세지를 발행하는 로직에서 메세지 관련 객체를 수정했다. 하지만 다른 조직 시스템인 System2, System3 은 배포 타이밍이 다를 수 있고 또 변경 대상이 반영 안되서 consume 하는데 규칙이 안맞으면 장애가 발생할 수 있다. 그래서 objectMapper 관리를 잘 해야 한다. 1-1. FAIL_ON_UNKNOWN_PROPERTIES FAIL_ON_UNKNOWN_PROPERTIES 옵션은 항상 신경써야한다. FAIL_ON_UNKNOWN_PROPERTI.. 2022. 1. 15.
국어영역 독서(비문학) 수능을 준비하던 수험생일 때 나는 국어영역(그시절 언어영역)이 항상 어렵게 느껴졌다. 특히 독서(그시절 비문학) 지문이 어려웠다. 실제로 수능도 언어를 제일 못봤다. 그때의 어렵다는 두려운 감정은 PTSD 처럼 시간이 지나도 계속 남아있었고 극복해보고 싶었다. 그래서 작년 10월 말 EBS 국어 문제집을 샀다. 그리고 매일 출근 전 한 지문씩 풀었다. 12월 중반부터는 회사일로 공부할게 많고 힘들어서 잠깐 습관이 끊겼지만 다시 시작해 오늘 모든 문제를 다 풀었다. 확실히 수능을 준비하던 때보다 아는게 많아져서 예전처럼 문제 난이도에 압도되지 않았다. 하지만 그때도 어렵게 느껴졌던 물리, 화학 같은 과학 기술 지문은 지금도 똑같이 어려웠다. 컴퓨터 과학기술은 그래프 탐색 알고리즘 지문이 하나 나왔는데 디테.. 2022. 1. 14.
nslookup 과 dig 명령어 결과 차이 서버에서 ybs.api.com 도메인으로 http api 를 보내다 connection timed out 에러가 발생했다. errorCode: connection timed out: ybs.api.com.ybs.svc.io.com/10.1.2.3:8080; nested exception is io.netty.channel.ConnectTimeoutException: connection timed out 그런데 에러로그에서 ybs.api.com.ybs.svc.io.com 도메인으로 출력됐고 이해가 안가서 확인해봤다. 먼저 nslookup 으로 ybs.api.com DNS 정보를 확인했는데, ybs.api.com.ybs.svc.io.com 도메인이 DNS CNAME 으로 등록되어 있었다. $ nslookup.. 2022. 1. 12.
kafka transaction(exactly once semantic) kafka transaction 설명에 앞서 kafka 통신을 위한 기본적인 코드부터 설명하려 한다. 테스트 코드에서 EmbeddedKafkaBroker 를 활용해 broker 역할을 대신했다. 그리고 json 데이터를 보내기 위해 objectMapper 를 생성했다. 마지막으로 데이터 전달을 위해 Product 객체를 생성했다. public class KafkaTest { static EmbeddedKafkaBroker BROKER; static final String TOPIC_NAME = "ybs-topic"; ObjectMapper objectMapper = JsonMapper.builder().build(); static { // broker 갯수 1개, 파티션 갯수 1개 BROKER = new.. 2022. 1. 9.