CS

개발자가 CS지식을 알아야하는 이유 정리

fladi 2023. 12. 2. 04:43
728x90

 

기술면접을 준비하면 운영체제, 네트워크 등의 CS관련 지식을 많이 공부하게 된다.

하지만 웹개발을 해다보면 이런 지식이 어디에 사용되는지, 꼭 필요한지 의문이 생기기도 한다. 글쓴이도 기술면접을 준비하며 운영체제에 대해 공부할 때, 시스템 소프트웨어 개발자가 목표도 아닌데 왜 운영체제를 배워야하는지에 대한 의문이 생기기도 했다(절대 공부하기 싫어서 한 생각은 아니다)

실제로 습득한 이론적 배경들이 어떻게 실제 업무에 적용되는지, 또 어떻게 활용되어야 하는지 명확히 알지못하는 사람들이 많다고 한다.

 

하지만 전반전인 컴퓨터공학에 대한 이론적 배경 지식이 부족하다면 취업 후 기술을 사용하는 데 한계에 부딪힐 수 있다고 한다. 오늘은 CS지식을 알아야하는 이유에 대해 정리해보겠다!

 

 

상황1

사용자들이 대규모로 접속하는 온라인 쇼핑몰의 특정 프로모션 기간

알고리즘이나 자료구조의 지식이 없다면 -> 데이터 처리와 사용자 요청 응답에 지연발생 가능

 

해결방법

  1. 사용자의 요청을 균등하게 분산시키기 위한 알고리즘, 로드 밸런싱
  2. 사용자 정보, 데이터, 상품 정보 등을 저장하고 검색할 때 가장 효율적인 자료구조를 선택하여 빠르게 데이터 처리 가능
  3. 서버의 응답시간을 줄이기 위해 '멀티 스레딩'이나 '동기화'와 같은 운영체제 기법 필요
    • 해당 지식이 없다면 데이터의 불일치나 서버 다운 문제 직면가능
    • 많은 요청을 빠르고 안정적으로 처리가능

 

 

상황2

채팅 애플리케이션이나 좌석 예약과 같은 실시간 통신을 요구하는 경우 소켓 프로그래밍이 필요함

실시간 채팅 어플리케이션은 사용자 간 메시지를 실시간으로 교환하고, 소켓 통신은 이런 데이터 교환이 가능하게 함

 

  • 소켓 = 프로그램 내부의 네트워크 연결지점
  • 소켓 프로그래밍 = 연결 지점을 통해 데이터를 주고받는 것이 가능해지도록 하는 것

 

이런 소켓 프로그래밍을 위해서는 TCP, UDP, 3-way handshake와 같은 네트워크 지식에 대한 이해가 필요함

 

 

 

 

CS지식은 절대 불필요한 것이 아니다. 하기싫다고 생각하지 말고 열심히 공부하여 기본기가 탄탄한 개발자가 되도록 노력하자!

 

 

 

 

참고자료

 

https://fastcampus.co.kr/story_article_newcomputer

 

실무의 장벽, 컴퓨터공학 : CS지식 부재로 인한 개발자 취업 후 현실 | 패스트캠퍼스

개발자 취준생, 주니어 개발자라면 꼭 겪는 '컴퓨터공학 이론-실무 사이의 괴리', 컴퓨터공학 도대체 실무에서 어떻게 사용되는지 궁금하신가요? 진짜 실무 맞춤형 컴퓨터공학 커리큘럼을 확인

fastcampus.co.kr

 

 

728x90