Skip to main content

📖 면접을 위한 CS 전공지식 노트

Chanho Lee
다양한 분야를 공부하고 있는 학생
info

길벗 ‘18차 개발자 리뷰어’ 활동을 위해서 책을 제공받아 작성된 서평입니다.

Book Info

tip

책 이미지를 클릭하면 교보문고 사이트로 이동합니다!

책

  • 제목: 면접을 위한 CS 전공지식 노트
  • 저자: 주홍철
  • 출판사: 길벗
  • 출간: 2022-04-28

Intro

신입으로 취업을 준비하는 학생에게 가장 중요한 건 코딩 테스트와 면접 준비라고 생각합니다. 전 취준생으로서 코딩 테스트는 지금도 열심히 공부하고 있지만, 문제는 면접 준비였습니다. 어느정도 대답은 할 수 있겠지만, 아직 부족하다고 생각했습니다.

보통 면접에서는 프로젝트 관련해서도 지원자에게 묻지만 Computer Science 전공 지식을 묻는 경우도 있습니다. 그렇기에 CS 전공을 다시 복습할 필요가 있었고, 전 "어떻게 CS 전공을 다시 복습하지?"라는 고민을 하게 됐습니다. 운영체제, 네트워크, 자료구조, 데이터베이스, 컴퓨터 구조 등의 전공은 모두 책 하나하나가 엄청 두껍기에 다시 볼 생각에 막막했습니다. 이런 고민을 하고 있을 때 이 책을 만나게 됐고, 이번 개발자 리뷰어에 신청을 하여 읽어볼 수 있게 됐습니다.

디자인 패턴

저는 이 부분이 가장 어려우면서 가장 유용했던 부분이었습니다. 솔직히 전 백엔드를 엄청 깊게 공부한 것이 아니라 디자인 패턴에 대해 간략하게는 알고 있었으나, 예를 들어 "싱글톤 패턴"에 대해 자세히 설명해보라고 하면 못할 수준이었습니다. 이 책을 읽으면서 다양한 디자인 패턴을 공부해볼 수 있어 도움이 됐습니다.

정말 필수적인 지식

정말 각 전공 과목에서 필수적인 지식만 간단하게 엄청 잘 요약되어 있습니다. 중간중간 이미지 삽화로 설명하는 부분도 좋았고, 진짜 복습용으로 공부하기 좋은 책이라고 생각합니다.

이 책을 보면서 각종 문서들을 참고하면서 공부했지만, 이 책에서 설명하는 것이 가장 깔끔했습니다. 또한, 책에 기술되어 있는 것들만 내가 제대로 알고, 설명할 수 있으면 적어도 면접에서 마이너스는 되지 않겠다고 생각했기에 이 책을 믿고 공부했습니다. 딥하게는 아니지만 간단하게라도 이 책을 통해서 전반적인 디자인 패턴을 공부할 수 있게 되어 너무 유익했습니다.

마지막 면접 팁

저자의 개인적인 포트폴리오 작성 방법, 면접 노하우 등을 설명합니다. 또한, 면접에서 나올 수 있는 예상 질문에 대해 설명합니다. 저자께서 직접 경험하시고 대답하신 내용들이 담겨져 있어 면접에서 어떻게 대답을 해야 할지 참고할 수 있었습니다.

대상 독자

면접 전에 급하게 공부해야 할 때 보기 좋을 것 같습니다. 그러나 꼬리 물기 질문을 어디까지 할지 저희는 예측할 수 없으니 책에 적힌 내용으로도 부족할 수 있습니다. 부제에 기술되어 있는 전공 과목에 대해 공부해보시지 않으셨다면 상당히 어려울 수 있습니다. 그럴 때는 다른 문서들과 함께 읽으시면서 공부하시는 걸 추천합니다.

🏍️ 5월 우아한테크세미나

Chanho Lee
다양한 분야를 공부하고 있는 학생

Intro

우아한Tech

나는 우아한Tech 채널 및 다양한 개발 채널들을 구독하고 있는 컴퓨터공학 학부생이다. 우아한Tech 채널은 다양한 개발 관련된 지식을 공부할 수 있으며, 현업에 일하시고 있으신 분들의 경험을 간접적으로 체험할 수 있다는 점에서 구독하게 됐다.

5월 리뷰

우아한Tech 채널에서는 매달 우아한테크세미나가 진행된다. 몇 달 전에도 지속가능한 SW 개발을 위한 코드리뷰 :: 4월 우아한테크세미나를 꽤 재밌게 봤다. 상당히 도움이 되는 내용이 많았다고 생각하지만, 대학생보다는 오히려 주니어 개발자에게 더 어울리는 내용이었어서 리뷰는 생략했다.

5월 우아한테크세미나는 "공부하고 성장하는 노하우" 에 대해 이야기를 한다. 나는 항상 “내가 하고 있는 공부가 맞는 건가?” 를 생각하며 자기 자신을 점검하는 습관을 갖고 있어 매우 흥미가 가는 주제였다. 또한, 개발자를 목표로 하는 대학생의 입장으로서 “우아한형제들 개발자는 어떻게 공부하고 성장했을까?” 라는 궁금증이 생겨 나와 비교할 겸 이 영상을 리뷰하게 됐다.

순서

이 영상은 1부와 2부로 나누어진다. 1부에서는 우아한형제들의 DevRel팀이 우형 개발자들의 성장과 공부를 위해 어떤 노력을 했었는지 소개를 하고, 2부에서는 우형 개발자 세 분과 함께 패널 토크를 진행한다.

Review

DevRel?

Developer Relations 즉, DevRel팀은 간단히 말하면 사내 내부 개발자의 성장을 위한 조직이다. 또한, 이를 기반으로 기술 조직의 브랜딩 강화에도 목적이 있다고 한다.

처음 저 정의를 읽었을 때 “어떻게 브랜딩 강화에 도움을 주지?”라는 의문이 있었다. 그러나 다시 생각해보니 맞는 말이었다. 개발자를 위해 노력을 하고 있다는 것을 블로그 또는 유튜브 영상으로 볼 수 있으니 성장하기 좋아하는 개발자라면 그 회사에 대해 매력을 느낄 것이라 생각이 들었다.

우아한 형제들의 DevRel팀이 어떤 노력을 하고 있는지 더 자세하게 알고 싶다면 우아한형제들 기술 블로그에 우아한형제들의 Developer Relations, 우아한형제들 Developer Relations-Updated 글을 참고하자.

사실 DevRel팀을 다양한 기업들의 채용공고, 기술 블로그 등을 보면서 최근에 알게 됐으나, 상당히 매력적인 조직이라고 느껴졌다. 아무래도 내가 회사 조직 문화, 일 문화 등에 관심이 많아 개발자 성장을 위해 다양한 모임들을 기획하는 등의 일도 재밌을 것 같다고 생각했나 보다. 또한, 개발자를 지망하고 있지만, 내 노력을 통해 누군가 성장하는 걸 보는 것도 상당히 재밌는 일이 되겠다고 생각한다.

우아한스터디

우아한형제들 개발자들이 내부 개발자들뿐만 아니라 다른 소속 또는 무소속의 개발자들과도 함께 스터디를 진행할 수 있도록 하는 프로젝트이다. 작년 12월, 다양한 주제의 스터디로 시범 시행했고, 이번 5월부터 다시 정식 운영이 됐다고 한다.

인상 깊었던 점은 우아한형제들 DevRel 팀에서 우아한형제들 개발자의 성장을 위해 다른 소속 또는 대학생, 취준생 같은 무소속인 사람들과 연결해주신다는 것이었다. 이건 우형 개발자들도 이 프로그램에 참여하시는 분들도 모두 도움이 될 것 같다.

인맥이 없으신 분들께는 열정적인 스터디를 경험해볼 수 있는 상당히 좋은 기회가 됐을 것이다. 또한, 내부 개발자들에게는 다양한 견해, 지식을 가진 사람들이 공부를 목적으로 스터디를 하는 것이니까 운영만 잘된다면 사내 개발자의 입장에서는 새로운 인사이트를 얻을 수도 있기에 상당히 도움이 될 것이라 생각한다.

언제나 느끼는 것이지만 스터디는 내가 원하는 주제, 스터디 참여자의 공부 수준, 열정적인 스터디 참여자 등 고려해야 할 조건이 많아 처음 구성할 때가 가장 힘든 것 같다. 그렇기에 공부할 목적만 있다면 이렇게 기업에서 직접 연결해주는 스터디를 찾아 들어가는 것도 좋은 방법인 것 같다. 또한, 대학생으로서는 현업에 계신 분들과 스터디해보는 경험은 흔치 않으니 도전해보는 것도 좋다고 생각한다.

나도 우아한형제들의 DevRel팀에서 보내주신 메일을 받고 “우아한스터디에 지원해볼까?” 고민하기도 했지만, 현재 하고 있는 것만 해도 너무 많아 신청하지 않았다. 다음에 여유로울 때 이런 기회가 또 있다면 한 번 신청해봐야지.

우아한멘토링과 테크살롱

개발자들이 네트워킹하기 편하도록 우아한형제들에서 만든 공간이다. 아무래도 우아한형제들은 내부적으로 하는 프로그램이 많아 참여자분들과 네트워킹을 더 쉽게 할 수 있는 공간을 따로 만든 것 같다. 현재는 우형에서 진행중인 프로그램에 참여하시는 분들만 출입이 가능하다고 한다. 나중에는 우형 소속이 아니더라도 모여서 네트워킹을 할 수 있는 자리로 발전할 수 있지 않을까.

영상에서 세미나를 진행하고 있는 장소가 바로 테크살롱이라고 한다. 엄청 좋은 컴퓨터가 지급되는 것도 좋은 복지 중 하나지만, 이런 공간과 건물을 사용할 수 있다는 것도 좋은 복지가 아닐까 싶다. 테크살롱에 대한 자세한 소개는 테크살롱를 참고하자.

우아한멘토링에 대해서도 이전에 메일을 받은 적이 있었다. 메일에는 재직 중인 개발자를 대상으로 개발자로서 겪는 고민을 함께 공유하는 프로그램이라고 소개되어 있었는데 이번 영상을 보고 “개발자가 아니었어도 됐던 건가?”라는 의문이 들었다. 개발 뿐만 아니라 스타트업 CEO 등 여러 도메인에 경험이 있으신 분들 또는 다양한 직군에서 일하시는 분들을 초청해서 약 8주 동안 우아한형제들에 궁금한 사항들을 멘토링 하셨다고 한다. 아마 내가 받은 메일보다 더 많은 프로그램이 진행된듯 싶다.

이 프로그램도 “신청해볼까?”라는 생각을 했었으나, 재직 중인 개발자 대상이었고 오프라인 모임이었기에 신청하지도 못했었다. 아쉽지만 나중에 개발자로 취직 성공하여 다시 서울로 올라간다면 이런 프로그램에 한 번쯤 참여해보고 싶다. 멘토링 같은 경우에도 다음에는 취준생 또는 대학생들을 불러 멘토링을 하는 기대도 해볼 수 있을 것 같다.

스터디 패널 토크

스터디와 관련된 토크에서는 우아한스터디에서 Rust라는 언어를 학습하고 프로젝트를 해보는 스터디를 진행하신 리더셨던 태원님과 진행되었다. 다양한 분야, 이해도를 가진 분들이 오셔서 먼저 공부하고 이후 토론을 진행하는 것이 이번 스터디 목표였다고 한다.

지금까지 여러 스터디에 참여해보기도 하고 운영해보기도 했지만, 정말 이상적인 스터디라 생각한다. 저런 스터디를 운영하려면 인원을 정말 잘 뽑아야 할 것 같았다.

이런 스터디를 진행할 때는 더 많이 이해하고, 알고 있으신 분들은 잘 이끌어야 하고, 모르시는 분들은 질문하는데 겁먹지 않는 것이 가장 중요한 것 같다.

나도 대략 8개월 정도 스터디를 했던 경험이 있다. 그렇기에 스터디를 오래 하기 위해서는 기술적인 공부에만 목적을 두는 것이 아니라, 인간적인 면도 고려해야 한다는 것에 매우 공감이 됐다. 온라인으로 진행된 스터디여서 같이 밥을 먹거나 감정적으로 재밌는 활동을 많이 하지는 않았지만, 스터디를 오래 하기 위해서는 그런 부분도 고려하는 것이 좋은 것 같다.

임시적인 조직이더라도 무감정으로 임하기 보다는 좋은 감정을 갖고 스터디에 참여하는 것이 더 도움이 된다. 또한, 어떠한 사정으로 인해 스터디에 참여하지 못할 수도 있기에 서로 시간 조정을 잘해야 한다는 것이 중요하다.

나 혼자 성장하는 것과 같이 성장하는 것 중에 어떤 것이 본인이 성장하는데 더 도움이 될까?

같이 성장하는 것이 더 도움이 된다. 나눠주는 것을 아까워 할 필요가 없다. 우리가 공부하고 있는 것이 인류에 영향을 끼칠정도로 엄청난 것이 아니다. 공유하고 알려주려고 할 때 내 안의 지식들이 더 단단해진다.

저 대답에 동의를 못 하는 사람도 있을 수는 있다. 나도 예전에 동의를 못 했던 사람이었다. "굳이 나눌 필요 있나. 나도 받은 것이 없는데." 라고 생각했었다. 그러나 다시 잘 생각해보자. 지금 개발하며 모르는 정보가 있을 때, 구글링을 해서 내가 원하는 지식을 찾을 수 있는 것도 누군가 문서로 작성해서 공유했기 때문이다. 언어나 프레임워크 등을 사용할 수 있는 것도 누군가 사용하라고 공개했기 때문이다. 이게 다 받은 것이 아니면 무엇일까.

또한, 누군가를 가르쳐 본 사람은 알겠지만, 내 지식을 공유하고 알려주려고 할 때 내가 알고 있는 지식을 점검하게 되고 다시 복습할 수 있게 된다. 발표나 말로 알려주게 되면 설명하고 말하는 능력도 키울 수 있으며 문서화를 하게 되면 글쓰기 능력을 기를 수가 있다. 얼마나 장점이 많은가. 그렇기에 나도 요창님의 하신 저 말에 동의한다.

계속해서 성장하고 공부를 하는 이유가 무엇일까?

계속해서 나의 커리어를 발전시키지 않으면 도태되기 쉬우니까 계속 열심히 공부하고 성장해야 한다. 기술은 굉장히 빠르게 발전하기에 2~3년에 한번씩 시장에서 나를 찾는가 확인받는 것이 굉장히 중요하다. 시장의 흐름에 따라서 나도 그만큼 공부하고 계속 준비하고 있어야 한다.

이직이라는 것을 시장에서 2~3년에 한 번씩 나를 찾는가 확인받는 것이라고 표현하신 부분이 매우 인상 깊었다. 내가 가진 기술로 더 많은 수입을 얻을 수 있는가, 내가 이 시장에서 수요가 있는 것인가. 난 아직 대학생이지만, 저 생각도 너무 이해되고 나도 나중에 연차가 늘어날수록 저런 생각을 하게 되는 개발자로 성장했으면 좋겠다.

개발자에게도 글쓰기가 중요한 이유는?

내 생각을 정리할 수 있는 시간을 가질 수 있다. 논리적으로 남을 이해시킬 수 있는 글을 쓸 수 있다. 개발자만 읽을 수 있는 글이 아니라 개발 직군이 아닌 사람도 이해할 수 있는 글인가 생각해보자. 아무것도 모르는 사람이 하나라도 이해할 수 있는 부분이 있어야 나랑 같이 일하는 사람들도 이해시킬 수 있다.

장문의 글을 쓰려고 하지 말고 오늘 배운 것을 내 문체로 한 문장 또는 두 문장 정도로 짧게 정리해보자. 이게 모여서 하나를 만드는 것이다.

요창님이 위의 말을 하시면서 제텔카스텐 얘기를 꺼내셨다. 나도 최근 들어 제텔카스텐 책을 읽고 조금씩 해보려고 노력하는 중이라 조금 신기했던 부분이다.

또, 영상에서 광휘님이 TIL(Today I Learned) 얘기를 하셨는데 확실히 TIL을 작성하는 것도 개발을 공부하고 정리하는데 꽤 많은 도움이 된다. 문제는 이걸 매일 하는 것이 너무 힘들다는 것. 그러나 꾸준히 하면 확실히 도움이 된다.

블로그에 글 쓰는 것도 도움이 된다. 개발 외적으로 많은 도움이 되고 개발적으로도 공부하고 글을 쓰던 습관이 있으니 개발 공부를 해야 할 때 빠르게 정리하면서 지식을 습득할 수 있다.

진심으로 동의한다. 수많은 지식들 속에서 자신이 중요한 정보를 뽑아내어 나만의 글로 빠르게 작성할 수 있다면 공부하는 데 많은 도움이 된다.

광휘님도 매번 글쓰기를 진행하셨으며 2주에 한 번씩은 글쓰기를 하자고 생각했는데 못 지키셨다고 한다. 그래서 선택하신 방법이 "글또"라는 모임에 들어가는 것이었다. 즉, 강제성을 부여하여 공부하는 방법이다. 그러나 강제성을 부여하더라도 벌금이 아니라 벌칙으로 강제성을 부여해보자. 돈은 내면 그만이다.

이 방법도 공부가 너무 하기 싫을 때 도움이 되며, 나도 가끔 사용하는 방법이다. 난 공부를 너무 하기 싫을 때 스터디에 들어가서 발표를 하기 위한 공부를 한다. 발표를 하기 위해서는 다양한 자료를 준비해야 하고, 말을 그만큼 익숙하게 하기 위해 설명하고자 하는 개념을 거의 완벽하게 알고 있어야 한다. 많은 시간이 소모된다는 단점이 있지만, 그래도 공부 하나만큼은 확실하게 된다.

현업에서 일하시는 분들 이야기를 들어보면 코드를 작성하는 일도 있지만, 문서화도 엄청나게 중요하다고 말한다. 그렇기에 개발자에게도 요즘 글쓰기가 더 중요하다고 말하는 것이 아닐까?

개발자에게 글쓰기란 무엇인가?

글쓰기는 생활화되어야 한다. 공부를 했던 기억을 길게 유지를 할 수 있게 하는 장치이며, 커뮤니케이션 비용을 줄이는 도구이다. 모두가 언제든지 오프라인에서 만날 수 있는 것이 아니고, 언제든지 전화를 할 수 있는 것이 아니다. 그렇기에 문서화를 잘 하고 의견을 잘 담아서 정리할 수 있어야 한다.

개발하기도 바쁜데 다양한 활동을 하는 에너지의 근원은?

  • 후회를 덜 남기기 위해 한다.

  • 예전에 썼던 글에 댓글, 잘못된 지식을 전문가들이 잡아줄 때 성장이 된다.

    • 새롭게 시작하는 분들께 기술 블로그를 작성하는 것을 추천한다. 공부한 것을 정리하는 데 도움이 되며, 사수가 없는 환경에서 일하게 될 경우 조언, 피드백을 받을 수 있다.

기타

  • 말을 잘하기보다는 서로를 잘 공감해주고 서로 성장하고자 하는 마인드를 갖자.
  • 근거를 잘 대자.
    • 언제 써보니 좋다더라, 누가 이거 좋다더라 등의 객관적이지 않은 이유보다 항상 상황을 잘 파악하고 여러 요소들을 감안한 근거를 대자.
  • 문제를 정의하고 가설을 세우고 피드백 받는 것을 잘하는 사람이 되자.
  • 하나의 문제를 봐도 다양한 관점에서 보려고 노력해보자.
    • 하나의 기술을 봐도 다방면으로 생각해보자.
  • 상사 또는 팀장에게 질문하는 것을 겁내지 말기.

번아웃이 온적 있으신가요? 많약 있다면 어떻게 극복했는지 알 수 있을까요?

개발만 하면 번아웃이 온다. 그러나 개발에 하는데 있어서 도달하는 영역까지 공부하려고 노력을 했다.

광휘님은 번아웃이 온 적이 없으시다고 한다. 기획서를 분석하는 프로세스, 커뮤니케이션을 잘하기 위한 흐름을 만드는 등 다양한 노력을 하신 것 같았다. 개발만 공부하는 것이 아니라 이런 것들을 계속 번갈아 가면서 공부를 하니 번아웃이 오지 않으셨다고 한다.

이 부분이 내가 반성했던 부분이었다. 나는 어쩌면 너무 개발에만 열심히 하려고 있지 않았는지 다시 생각해보는 계기가 됐다. 개발자는 개발만 잘하면 되는 것이 아니다. 커뮤니케이션도 글쓰기 등 다양한 능력들을 키울 수 있으면 좋은 것 같다.

난 항상 번아웃이 오지 않으려고 노력을 하지만, 결국은 개발을 계속하다가 보면 언젠가 지칠 때가 있었다. 그럴 때 나는 그냥 경제, 심리 등의 다른 분야의 책을 읽었다. 다른 분야로 환기를 시키는 것이다. 이게 상당히 도움이 된다. 또한 가만히 좌절하고 있는 것보다 훨씬 낫다.

돈 받으면 누구나 프로다. 프로는 스스로 컨디션 관리를 해야 한다.

요창님이 저 말을 하셨을 때 엄청나게 충격을 받았다. 나중에 내가 돈을 받고 일하는 개발자가 된다면 저 문장을 다시 생각하게 될 것 같다.

후기

위의 내용은 영상을 간단하게 요약 해서 적은 것이며, 개인적인 생각도 적혀 있기에 원본 영상을 꼭 보는 것을 추천한다. 지금까지 좋은 개발자, 계속 성장하는 개발자가 되기 위해 책들도 많이 읽었었지만, 이번 영상을 통해서 다시 복습할 수 있어 좋았다. 다시 한 번 정말 많은 생각들을 하게 되는 영상이었고, 개발자를 목표로 하는 학생이나 성장에 대한 고민을 갖고 있는 주니어 개발자들이 기회가 된다면 봤으면 좋겠다.

📖 AWS로 시작하는 인프라 구축의 정석

Chanho Lee
다양한 분야를 공부하고 있는 학생
info

제이펍 <믿고 보는 IT 전문서 리뷰어> 활동을 위해서 책을 제공받아 작성된 서평입니다.

Book Info

tip

책 이미지를 클릭하면 교보문고 사이트로 이동합니다!

책

  • 제목: AWS로 시작하는 인프라 구축의 정석
  • 저자: Kenji Nakagaki(나카가키 겐지)
  • 역자: 김모세
  • 출판사: 제이펍
  • 출간: 2022-06-09

📖 엑셀, R, 파이썬으로 시작하는 데이터 분석

Chanho Lee
다양한 분야를 공부하고 있는 학생
info

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

나는 리뷰어다 2022

Book Info

tip

책 이미지를 클릭하면 교보문고 사이트로 이동합니다!

책

  • 제목: 엑셀, R, 파이썬으로 시작하는 데이터 분석
  • 저자: George Mount
  • 역자: 시진
  • 출판사: 한빛미디어
  • 출간: 2022-04-29

📖 좋은 코드, 나쁜 코드

Chanho Lee
다양한 분야를 공부하고 있는 학생
info

제이펍 <믿고 보는 IT 전문서 리뷰어> 활동을 위해서 책을 제공받아 작성된 서평입니다.

Book Info

tip

책 이미지를 클릭하면 교보문고 사이트로 이동합니다!

책

  • 제목: 좋은 코드, 나쁜 코드
  • 저자: Tom Long
  • 역자: 차건희
  • 출판사: 제이펍
  • 출간: 2022-05-26