2024년 인프콘 후기 - #3 경력이 늘수록 CS 이론이 중요해지는 이유

Joshua_Kim·2024년 8월 11일
11

2024년 인프콘 회고

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

🌱 0. 서론

  • 📣 스피커 : 최호성 - 널널한 개발자TV
  • 세션을 선택한 이유
    널널한 개발자 TV는 개발자 사이에서는 아주아주 유명한 유튜브 채널이다.
    정말 유익한 내용을 많이 담고 있고, 특히 주니어 개발자와 비전공 출신 개발자들의 고민에 대해 진심으로 고민하고 답변을 해주는 채널이다.
    게다가 이번 세션 제목이 최근들어 중요하다고 생각하고 있는 CS 이론에 대한 내용을 다루는 것으로 보여 관심이 있었다.

✍🏻 1. 세션 정리

🍐 1. CS 이론과 경력자의 흔한 고민

널널한 개발자TV 를 통해 들어오는 가장 많은 고민

유튜브 채널을 통해 개발자 혹은 예비 개발자들에게 들어오는 고민들을 정리하면 위의 그림과 같다고 한다.

취업을 앞두고 있는 학생이나 예비 개발자들이 아닌, 현역 개발자들에게 듣는 질문은 다음과 같았다.

현역 개발자들의 고민
1. CS 에 대한 학습은 어떻게 해야하는가
2. 현재 나는 개발자인데 개발자를 계속 해야하는게 맞는가
3. 이직을 해야하는데 어떻게 해야하는가.


모든 고민의 핵심, CS

위의 현역 개발자들의 고민들에 모두 얽혀있는 것이 바로 'CS' 다.

개발 경력이 4년을 넘어 주니어를 벗어나게 되면, 컴퓨터에 대한 기본 지식이 필요해지는 순간들이 오게 된다.
단순히 기능 개발을 넘어서, 문제를 해결해야하고 원인을 진단해야하는 경우가 생기게 된다.

이 때, CS 에 대한 아는 것이 없으면 트러블 슈팅 시, 원인을 찾는 것이 쉽지 않다.

그렇기 때문에, 개발자를 시작했다가 몇 년 지난 후 부터 이런 고민을 하게 되는 것이다

🥲 : "내가 개발자를 하는게 맞나..? 이런 문제들을 전혀 해결 하지 못하겠는데..?"


그만큼 개발자의 생명력을 연장해주고 그 바탕을 탄탄하게 만들어 주는 것이 CS다.


🍇 2. 개발자의 기본기

모든 것은 기본에서 시작한다.


'모든 것은 기본에서 시작한다' (손웅정 감독)

그 어떤 영역이라도 모든 것은 '기본기'가 가장 중요하다.

운동, 음악등의 기본기 형성은 '시기' 도 매우 중요하다.
어렸을 때 부터 꾸준한 학습과 연습으로 기본기를 탄탄하게 단련시켜야 한다.
그래야 성장하면서 그 기본기를 바탕으로 더 위대한 일을 할 수 있게 된다.

개발자의 개본기

그렇다면 개발은 어떠한가?
정말 다행인 것은, 개발자의 기본기는 꼭 어렸을 때부터 갖춰야 하는 것은 아니다!

정말 다행이다.
나는 30대에 개발을 시작했고, 30살이 결코 어린나이는 아니기 때문이다.

하지만 분명, 개발자의 기본기를 갖춰야 할 시기는 존재한다.

7년 이상의 미들급이 된다면 기본기를 갖추려고 공부하기는 현실적으로 쉽지 않다.
회사의 업무도 점차 많아지고, 현실적으로 가정을 이루고 아이를 키우면서 시간을 내서 공부하기가 정말 어려워지기 때문이다.
점점 연차가 쌓이고 나이가 들 수록 기본기를 연마할 시간을 확보하는 것은 어려워진다.

그렇다면, 개발자의 기본기는 무엇인가?

무엇이겠는가? 당연히 CS 다.

CS 근본은 변함이 없다.

  • 프레임워크는 진화하고, 기술은 진화하지만, 근본인 CS 는 변하지 않는다.
  • CS 에 대한 원리에 대한 이해가 없다면, 표면 현상을 암기할 수 밖에 없다.
  • 이것에 대한 학습과 기본기가 탄탄하지 않으면 근본 없는 모래성이 된다.


개발자의 기본기, 그리고 그것에 대한 의존성.

컴퓨터 구조, 운영체제, 프로그래밍 언어, 자료구조, 컴파일러

  • 위의 5가지가 CS 의 주축을 이루는 것들이다.
  • 이것에 대한 의존성을 잘 파악해야한다.

기본기의 의존성이란?

  • 예) 컴퓨터구조의 Stack -> 자료구조를 공부해야한다. 근데 이게 또 코드로 써있네? 프로그래밍 언어 -> 이것을 공부하기 위해서 운영체제, 컴퓨터 구조.....
  • 즉, 모든 개념들은 얽혀있고 의존성이 존재한다.
  • 하나를 따로 공부할 수 없다. 공부하면서 계속 개념들을 오고 가면서 입체적인 학습이 필요하다.

Database 와의 조우

위와 같은 의존성을 경험하면서 공부를 진행하게 되면 Database 를 만나게 된다.

  • Database 시스템은 IT 의 근간이 된다.
  • 백엔드 엔지니어로서, DB 에대한 이해와 공부는 매우 중요하다.

결국 코드로 만들어져 있다.

  • 컴퓨터 구조, 운영체제는 모두 결국은 코드로 이뤄져 있다.
    - 즉, 근본에 대한 이해가 가장 중요하다.
    • 근본을 이해하면, 모든 것은 그 기반에서 이해가 이루어지게된다.

💎 3. 큰 흐름이 보이던 어느날


위 복잡한 다이어그램은 최호성님께서 웹 개발의 큰 흐름을 하나의 그림으로 정리한 내용이다.

위 사진을 확대하면서 나름 분석한 내용은 아래와 같다.

웹 개발의 큰 흐름

  • 시작점은 사용자의 요구사항과 기획.
  • 이는 UI/UX 디자인 과정으로 이어지며, 여기서 와이어프레임과 프로토타입이 만들어 짐.
  • 프론트엔드 개발이 시작. HTML, CSS, JavaScript를 기본으로 하여 React나 Vue 같은 프레임워크이 활용됨.
    - 이 과정에서 상태 관리와 컴포넌트 설계가 중요한 역할을 함.
  • 백엔드 개발은 서버 사이드 로직 구현과 데이터베이스 설계로 이어짐.
    - API 설계와 구현이 이루어지며, 이는 프론트엔드와의 연결고리가 된다.
  • 개발 과정 전반에 걸쳐 버전 관리(Git)와 CI/CD 파이프라인이 적용됨.
    - 이는 지속적인 통합과 배포를 가능케 한다.
  • 보안은 전 과정에서 고려되어야 할 요소로, HTTPS 적용과 인증 시스템 구현이 포함됨.
  • 성능 최적화는 개발 후반부에 중점적으로 다뤄진다.
    - 캐싱, 로딩 최적화, CDN 활용 등이 이에 해당함.
  • 마지막으로 테스팅과 품질 관리가 이루어진다.
    - 단위 테스트, 통합 테스트, E2E 테스트 등 다양한 테스트를 거쳐 최종 제품이 완성됨.

위 그림을 분석하면서 전반적인 개발의 큰 흐름을 다시 한 번 복습겸 공부할 수 있어서 좋았다.
전체적인 흐름도를 그려보면서 큰 그림으로 개발이라는 것을 볼 수 있어서 좋았다.


🙏🏻 2. 개인소감

나는 비전공자 출신 개발자다.
확실히 느끼는 것은, 전공자들은 연차와 상관없이 기본기가 확실히 있다는 것이다.
이번 세션을 통해 명확하게 다시 내 상태와 마주하게 되었던 것 같다.
그리고 확실히, CS 를 더 늦게전에 공부해야겠다.

어플리케이션 개발에서 악취가 발생하는 것을 계속 방치하면 부채가 쌓이는 것처럼,
개발자가 CS 를 공부하지 않으면 그만큼 내 실력의 부채가 쌓인다고 생각이 들었다.

더 늦기 전에 CS 공부하자!! 💪🏻

profile
인문학 하는 개발자 💻
post-custom-banner

0개의 댓글