[CS] CS지식-1

아임펭·2024년 7월 5일

CS

목록 보기
1/3

개발을 하다보면 다양한 범위의 CS(Computer Science) 지식 필요합니다.
알고리즘, 데이터구조, 디자인패턴 등의 CS 지식을 프로그래밍에 사용하며 더 좋은 코드를 짤 수 있는 기술력이 되기도 합니다.
다양한 CS 지식을 습득하면서 자신의 역량을 키울 수 있기 때문에 틈틈히 CS 지식에 대해 알아보는 시간을 가지는 것도 필요합니다.

여러 가지 CS 지식을 주제를 가지고 다뤄보려합니다.

📒 개발을 위해 공통적으로 갖추어야 할 지식

컴퓨터 구조 지식
컴퓨터 보안 지식
응용 프로그램 인터페이스 지식
디자인 패턴 지식
네트워크 아키텍처 지식
소프트웨어 개발 방법론 지식
프로그래밍 언어 및 쿼리 언어 지식
함수형 프로그래밍, 객체지향 프로그래밍, 프로토콜 지향 프로그래밍 지식


💻 웹/앱

◾ 웹 서비스의 특징

  • 최신 버전의 서비스 이용 가능
  • 웹 브라우저에 종속
  • 앱에 비해 사용성이 떨어짐
  • SEO 태그 스트립팅 등 통해 바이럴 마케팅 가능
  • 페이지를 제한적으로 구성

◾ 앱 서비스의 특징

  • 터치방식으로 동작하여 입력 방식이 다양
  • 한 번 삭제 시 사용 가능성이 낮음
  • 웹에 비해 구현에 시간이 걸림

✔ 앱의 종류

네이티브 앱 : 일반적으로 다운받아 사용하는 앱, 브라우저로 접근 불가

하이브리드 앱 : 웹 기반의 앱 기능을 차용한 형태, 웹에서도 사용되야 하는 형태일 때 많이 사용

  • React Native, Flutter

✔ 웹 개발과 앱 개발을 할 때 필요한 지식

  • 버전 관리 시스템 : Git, Mercurial, SVN 등의 버전 관리 시스템을 통해 소스코드의 히스토리와 변경사항을 관리할 수 있는 지식
  • 와이어프레임, 프로토타이핑 도구 : 개발자와 기획자, 디자이너 사이에 효율적인 의사소통을 도울 수 있는 프로토타이핑 도구와 와이어프레임 활용법
  • 웹 서비스 관련 지식 : HTML, CSS, JS 등 기본적인 웹 언어의 이해도와 SOAP, REST, JSON, XML 등의 웹 서비스에서 데이터를 전송하고 관리하는데 필요한 지식
  • 자동 테스트 도구 : 오류를 빠르게 발견하고 디버깅할 수 있는 테스트 도구 지식
  • 데이터베이스 기술

✔ 웹 개발과 앱 개발을 위해 필요한 역량

① 서비스 요구사항에 맞게 비즈니스 로직을 구현할 수 있는 능력
② 많은 사용자가 버그 없이 서비스를 누릴 수 있도록 웹/앱 서비스를 안정적으로 만드는 능력
③ 라이브러리를 잘 사용해서 빠르게 구현하는 능력
④ 사용자 인터페이스 및 경험(UI/UX)에 대한 지식


🔧 개발자의 종류

웹 개발자(Web Developer)
인터넷을 통해 접근하는 웹 사이트, 웹 애플리케이션 개발

  • 프론트엔드 개발자 : 사용자 인터페이스 개발
  • 백엔드 개발자 : 사용자가 요청한 작업을 처리할 수 있도록 웹 애플리케이션의 내부 기능 담당, 서버운영과 DBMS 관리, API 작성

모바일 개발자(Mobile Developer)
스마트폰과 태블릿 등 모바일 장치를 위한 애플리케이션 개발

  • 안드로이드 : SDK 사용, Java, Kotlin
  • ios : XCode 사용, C, 스위프트

데이터 분석가(Data Analyst)
데이터 집합에서 유용한 정보를 추출하고, 이를 통해 비즈니스 의사 결정을 지원하는 역할, 데이터를 수집, 처리, 분석하여 통찰력 제공

인공지능 개발자(AI Developer)
컴퓨터가 인간과 유사한 방식으로 학습하고 작업을 수행할 수 있도록 하는 알고리즘/기술 개발

게임 개발자(Game Developer)
컴퓨터, 콘솔, 모바일 장치 등을 위한 게임 개발

임베디드 시스템 개발자(Embedded System Developer)
하드웨어와 밀접하게 통합된 소프트웨어 개발


[출처: 개발자 상식, 아는 만큼 보이는 백엔드 개발]

profile
I'm peng

0개의 댓글