백엔드 신입 4개월 차, 뭐부터 공부해야 할까요 (면접 질문 도움 요청)
안녕하세요. 올해 초에 백엔드로 입사해서 이제 슬슬 실무가 붙기 시작한 4개월 차 신입입니다. 회사 코드는 Spring 기반이고요.
요즘 제일 답답한 건, 기능은 어떻게든 만들겠는데 '왜 이렇게 설계했는지'를 물어보면 말이 안 나온다는 겁니다. 선임분이 리뷰로 물어보시는 것들에 대해서요.
그래서 이런 순서로 잡아보려고 하는데 방향이 맞는지 의견 주시면 감사하겠습니다.
1. 트랜잭션 격리 수준 — 개념은 아는데 실제로 언제 문제가 되는지 감이 없습니다
2. 인덱스 설계와 실행 계획 읽기
3. 테스트 코드 작성 (지금은 거의 안 짭니다...)
4. 분산 환경 개념은 아직 시기상조인가요?
너무 넓게 잡은 건지, 아니면 이 정도는 4개월 차에 알아야 하는 건지 자체를 모르겠습니다. 현업 계신 분들 조언 부탁드립니다.
5 개의 답변
순서는 나쁘지 않은데 3번을 1번보다 먼저 하세요. 테스트 없이 격리 수준 공부하면 실습할 데가 없어서 금방 까먹어요. 지금 코드에 통합테스트 하나라도 붙이면서 부딪히는 게 진짜 공부됩니다.
저 6년차인데 아직도 실행 계획은 볼 때마다 새로워요. 4개월 차면 이 정도 고민하는 것만으로도 충분히 잘하고 있는 겁니다. 조급해하지 마시고 리뷰 받은 것들 하나씩 왜 그런지 파보는 습관이 제일 중요해요. 화이팅
4번은 시기상조 맞음. 분산 트랜잭션이니 뭐니 하는 건 진짜 필요해질 때 파도 늦지 않아요. 지금은 단일 DB에서 인덱스랑 트랜잭션 제대로가 훨씬 이득
1번은 개념만 파지 말고 실제로 두 세션 띄워서 락 대기 걸리는 거 직접 재현해보세요. 저도 글만 읽다가 처음 데드락 로그 보고 이해 확 됐음ㅋㅋ
글쎄, '왜 이렇게 설계했는지' 설명 못 하는 게 격리 수준이나 인덱스 때문인가요? 솔직히 그건 요구사항 분석이랑 도메인 이해 부족인 경우가 더 많던데... 기술 스택부터 훑는 방향이 좀 어긋난 느낌입니다.