[디프만 14기 X 인프런 CS 스터디] CS 완전정복 스터디 수강일기 2편

yb__char·2024년 1월 8일
0

디프만 14기

목록 보기
4/5
post-thumbnail
post-custom-banner

짧지만 길었던 CS 스터디가 끝났다..! ⭐️
1편에 이은 2편 이야기를 하려한다. 3주차는 데이터베이스, 4주차는 네트워크에 대한 내용을 다루는 데 나름 3, 4주차에서 면접 이야기를 다루는 데에 빈도가 높아 기대하면서 수강했다. 수강 내용은 전반적으로 만족했고 스터디가 막바지에 이르면서 한달이라는 기간은 정말 짧았다고 생각한다. (아직 공부할 게 많오... 근데 재밌다)


3주차 데이터베이스

다루는 내용은 위와 같이 데이터베이스에서 기본적으로 묻는 질문들이다.
그 중 left outer join, inner join의 차이에 대해서 알고는 있었지만 항상 벤다이어그램을 그려 표현하려 했지만, 강의에서 내용 정리와 이해를 위한 설명으로

inner join은 두 테이블의 공통된 데이터, join on 절에서 공통된 데이터로 null인 데이터는 들어오지 않는다. on절에 null인 데이터를 불러올 수 없다는 뜻이다.
반대로 left outer join은 왼쪽 테이블의 기준으로 오른쪽의 데이터가 null값이여도 데이터 조회가 가능하다.

이와 같이 언제든 답할 수 있는 깔끔한 정리를 하였다.

다음으로 가장 단골 질문으로 등장하는 Transaction에 대해 다시 상기시켰다. 단순히 데이터베이스에서 트랜잭션이란? 질문이 들어왔을 때, 수행되는 작업 단위라 대답하면 내가 면접관이여도 할 말이 없어지게 될 듯하다.

그래서 무결성 유지 및 트랜잭션의 ACID 특정 등 보다 Deep하게 공부할 수 있었던 계기가 되었다.
추가로 스터디 날에 예상 질문을 미리 받아 답하는 시간엔 유익했던 질문으로 트랜잭션 격리 수준이 필요한 이유에 대해 답하였다.

위처럼 일관성을 해치지 않기 위한 것이고, 독립성을 보장하기 위한 격리 수준이며 단계별 격리 수준에 대해 공부를 하게 되었다.
실제로 넥슨에서 받은 질문이라 이 질문에 대해 계속 상기시켜야 하고, 트랜잭션을 다루기 위한 실무 프로젝트에서도 유익한 배경 지식이 될 것이라 생각한다.
이처럼 데이터베이스에서는 원래 알고 있었던 지식보다 놓쳤거나 새로 알게 된 지식을 초점으로 다시 공부하고자 하였다. 기반으로 알고 있던 지식을 바탕으로 새로 정리하게 되었고, 나름 재밌어하던 챕터라 꾸준히 공부를 할 것이다.


4주차 네트워크

네트워크 챕터는 조금 당황스러웠다. 지금까지 면접을 응시하면서 OSI 7계층에 대해 질문을 받은 적이 없었기 때문이다. 갑자기 OSI 7계층...? 대학생때 공부한 게 잠깐이였고, 아 나는 경력이였기에 관련 질문이 없었구나 라는 걸로 생각했다.

그렇지만 그 외, 쿠키/세션, Http Method 등 질문은 경력이여도 묻는 질문이였고, 실제로 질문을 받았다. 그 만큼 위 토픽은 중요하고 실무에서도 많이 접할 수 있는 사례이다.

또한 쿠키와 세션을 이용한 로그인 방식 또한 다루는 강의이고,

위 이미지와 같이 단계별로 내용을 학습하여 세션을 통한 인증, 인가(auth)의 절차는 다음과 같이 공부했다.

  1. 클라이언트가 로그인을 하면 서버는 회원정보를 대조하여 인증 (authentication)
  2. 회원 정보(클라이언트 정보)를 세션 스토리지에 생성하고 session ID를 발급
  3. http response header 쿠키에 발급한 session ID를 담아서 요청
  4. 클라이언트에서는 session ID를 쿠키에 저장하고 이후에 http request를 보낼 때마다 쿠키에 session ID를 담아서 보낸다.
  5. 서버는 쿠키에 담겨져서 온 session ID에 해당하는 회원 정보를 세션 스토리지에서 가져온다.(authorization)
  6. 응답 메시지에 회원 정보를 바탕으로 처리된 데이터를 담아서 클라이언트에 응답

위 절차를 따르게 되고 당연히 개발을 이렇게도 하겠지만 스피치하는 데에 코드 전부를 생각할 수 없기에 정리하는 데에 많은 도움이 되었다.
이와 같은 Topic을 다룬 네트워크 챕터는 프론트/백엔드 개발자에게 없어선 안될 지식이고 강의에서도 이를 초점으로 상세히 알려주어 나중에 있을 면접에서도 흔들리지 않고 답할 수 있을 거 같다.


후기

1~4주차까지 스터디는 성공적으로 마쳤다.
스터디를 하기 전 나와 비교하면 적지 않았던 성장을 하게 되었던 거 같다. CS 지식이 백엔드 개발하면서 기반이 되어야 하고 필히 알아야 할 지식이기에 매주 스터디원들과 질문을 주고 받으며 지식 공유하는 것이 도움이 되었다 생각한다. 질문을 받으면서 항상 꼬리를 묻는 질문과 흥미로운 아티클을 서로 공유하여 깊게 파고든 연습이 되었으며, 앞으로도 공부할 것이 많고 재미를 느끼며 진행했던 스터디였다!

끄읕 >__<

profile
안녕하세요 백엔드 개발자 차윤범입니다 :)
post-custom-banner

0개의 댓글