기록하며 성장한다 - 개발, 회고

일반 회고록

[ F-lab ] 멘토링 4주차 회고록 : 새로운 시각 (개발)

전대홍 2023. 11. 15. 16:41

이미지 출처 : https://f-lab.kr/

 

모르는 것을 알게 되었다면
반드시 공부해서 내 것으로 만들자

 


서론

네 번째 멘토링 시간이 되었다.

이번에는 멘토님 사정으로 평소보다 조금 늦은 시간에 멘토링을 진행하게 되었고, 대신 2시간 가량 멘토링을 진행하였다.

그리고 오늘은 개발을 하면서 꼭 알아야 하는 새로운 시각을 갖게 되었다.

 

3주차 멘토링에서 질문 받았던 부분을 공부한 후에 블로그에 정리하였다.

1. RAM 과 Disk 의 차이는?

2. 시스템 버스란?

3. Java에서 연산자란? 형변환이란? 그리고 메모리 오버플로우에 대해서 설명하시오.

4. Java에서 파일을 쓰는 과정을 OS와 인터럽트 그리고 I/O 관점에서 설명하시오.

5. String a = "Hi"; 와 String a = new String("Hi"); 의 차이를 메모리 관점에서 설명하시오.

6. 자바에서 애플리케이션 실행 과정과, JVM Warm up에 대해서 설명하시오.

 

다른 질문들도 더 있었지만, 포스팅 할만큼 어렵지 않았고 나름 대답도 잘 한 질문들은 포스팅하지 않았다. 그러한 질문들은 추후 공부 내용을 종합 정리 할 때 묶어서 포스팅 할 예정이다.

 


본론

네 번째 멘토링의 시작도 컨디션 체크와, 일주일간 어떻게 공부하였는지로 시작하였다.

그리고 이번에는 이전에 보내드린 이력서 피드백과, CRUD 프로젝트에 대한 피드백을 중심으로 멘토링이 진행되었다.

이력서에 관해서는 전체적으로 좋은 피드백을 해주셨지만, 너무 일기를 쓴 것 같이 길고 장황하기 때문에 조금은 핵심만 추려서 쓸 필요가 있다고 조언해주셨다. 그러면서 세부적으로 어디를 어떻게 고치면 좋을지를 코칭해주셨다. 그리고 PDF식의 이력서도 좋지만, 장황하게 설명한 부분을 따로 떼어 링크와 이어지게끔 하는 Notion 이력서도 하나 따로 준비하면 좋겠다고 말씀하셨다.

CRUD 코드에 대해서는 Session과 RestController 그리고 배타적 잠금에 대해서 이야기하셨다.

먼저 예전 회사에서 개발하던 방식으로는 Session을 Controller 마다 물면서 사용했는데, 이럴 경우 여러대의 서버를 두면 문제가 생긴다고 한다. 그래서 요즘은 Redis를 활용하여 Session 기능을 개발한다고 한다. 그리고 요즘은 ModelAndView을 활용하여 타임리프나 jsp로 넘기는 것은 잘 하지 않기 때문에 @RestController로 하여 전부 JSON 형식으로 return 하게끔 코드를 수정하는게 좋다고 하셨다.

마지막으로 이 부분은 과제였는데, 조회수가 올라가는 기능은 DB에서 Update문으로 처리가 되는데, 우리가 DB에서는 아무리 잠금 수준을 낮추더라도, Update와 Delete는 배타적 잠금이 걸릴 수 밖에 없다고 한다.

배타적 잠금이란 멀티스레딩으로 명령이 들어와도 코드를 순차적으로 실행해주고, 그 동안 다음 쿼리는 대기를 하는 것이다. 이렇게 되면 동시성 문제는 해결되지만 한 번에 1000명만 들어와도 처리 속도가 느려지고, 조회 하는 것 뿐 아니라 게시글을 수정하는 것도 Update문을 사용하기 때문에, 많은 사람들이 조회하면 자신의 글을 수정하는 것도 성능이 나빠진다고 한다.

그래서 동시성과 성능 그리고 여러대의 서버에서 운영한다는 가정하에 해당 코드를 수정하라는 과제를 주셨다.

 


해야 할 것

다음 멘토링 까지 해야하는 것은,

  • Java의 신 공부
  • 코딩테스트 공부
  • 스프링 공부
  • CRUD에서 조회수 관련 동시성, 성능, 다중 서버 고려 수정
  • CRUD Session 수정
  • CRUD Controller 수정
  • 이력서 수정

 


결론 ( 느낀 점 )

이력서와 포트폴리오에 대해서 이렇게 피드백 받아 본 적은 처음인 것 같다. 이력서는 가볍게 피드백 받아 본 적은 있었어도, 이렇게 집중 피드백을 받아 본 적은 없었던 것 같다.

또한 이 전 회사에서 근무를 하면서 동시성과 여러대의 서버에 관해서 크게 신경쓴 적이 없었는데, 개발하는데에서 새로운 시각이 열린 것 같아 기분이 좋았다.

열심히 수정하고 준비해서 내가 이루고자 하는 목표에 도달하고 싶다.