Time for us to shine

[혼공학습단 12기] 혼자 공부하는 얄팍한 코딩 지식 1주차 본문

혼공학습단/혼자 공부하는 얄팍한 코딩 지식 (개정판)

[혼공학습단 12기] 혼자 공부하는 얄팍한 코딩 지식 1주차

SH Park 2024. 7. 7. 19:50

▶1주차 미션 (7/1 ~ 7/7)

진도 : Chapter 01

기본 미션 : Ch.01 (01-1, 01-2) 확인 문제 풀고 인증하기 

선택 미션 : Ch.01-1에 소개된 개발자와 연관된 직군을 정리하기 


Chapter 01 개발자 이해하기 : 개발과 개발자 용어 알기 

 

01-1. 개발자는 대체 뭐하는 사람인가요? 

  • 웹 개발자 : 웹 사이트를 만드는 개발자  
    • 웹 퍼블리셔 (=UI 개발자) : 웹 사이트에서 보이는 부분을 담당하는 개발자 
      • 웹 사이트의 기능을 프로그래밍하기 보다는 웹 사이트의 외적 요소를 코드로 구현하는 역할 
      • 타 직군에 비해 진입 장벽이 낮고, 디자인과 밀접하기 때문에 웹 디자이너를 비롯한 비전공자들이 코딩을 시작하는 첫 단계로 도전하는 분야 
      • 주로 사용하는 언어 : HTML, CSS, 자바스크립트 
    • 프론트엔드 개발자 (=클라이언트 개발자) 
      • 웹 퍼블리셔 역할 + 자바스크립트로 프로그래밍 요소를 개발
      • 사용자에게 보여줄 웹사이트 화면을 만들고 사용자의 클릭이나 드래그와 같은 동작에 따라 웹사이트의 다양한 기능이 실행되도록 프로그래밍함 
        ex) 이미지 슬라이드, 웹 채팅 창, 온라인 디자인 도구 등 
    • 백엔드 개발자 (=서버 개발자) : 웹 사이트에서 눈에 보이지 않는 요소를 개발 
      • 프론트엔드 개발자가 만든 화면에 들어갈 데이터를 주고받는 서버의 기능을 구현 
        ex) 데이터베이스에 저장되는 각종 정보에 대한 입출력, 데이터 분석과 가공, 로그인을 비롯한 보안 요소 관리 등
      • 주로 사용하는 언어 : 자바스크립트, 파이썬, PHP, 자바 언어 + 스프링 프레임워크 
      • 프레임워크 : 각 언어마다 백엔드 프로그램을 만들 수 있도록 도와주는 제작 도구  
    • 풀스택 개발자 : 프론트엔드와 백엔드 관련 지식을 고루 갖추어 양쪽 모두 개발할 줄 아는 개발자 
      • 다수의 개발자가 서비스를 세분화해 전문적으로 분담하는 대기업보다는 소수 인원이 제품 전반을 만드는 소기업이나 스타트업에서 필요로 함 

  • 모바일 개발자 (=앱 개발자) : 모바일 기기에서 동작하는 앱 개발 (스마트폰, 태블릿, 스마트 워치 등) 
    • 안드로이드 개발자 
      • 갤럭시를 비롯한 안드로이드 스마트폰 기반의 모바일 앱을 개발 
      • 주로 사용하는 언어 : 자바, 코틀린 
    • ios 개발자 
      • 아이폰, 아이패드용 모바일 앱을 개발 
      • 주로 사용하는 언어 : 오브젝티브-C (오늘날 거의 사용X), 스위프트 
크로스 플랫폼이란? 
: 하나의 소스 코드로 안드로이드와 ios 모두에서 동작할 수 있는 앱을 만들 수 있는 플랫폼


ㅇ 회사에 따라서는 한 명의 앱 개발자가 안드로이드와 ios 모두 개발하기도 함 
ㅇ 안드로이드와 ios 앱을 각각 다른 언어로 따로따로 개발하기도 함 
ㅇ 크로스 플랫폼의 종류 : 플러터, 리액트 네이티브, 자마린 등 

  • 게임 개발자 : 게임을 만드는 개발자 
    • 게임의 전체적인 구조를 설계해서 게임이라는 하나의 결과물을 만드는 개발자 
    • 게임의 모든 구성 요소를 다룰 수 있어야함 
      ex) 복잡한 알고리즘, 물리 엔진 구현, 3D 그래픽 렌더링, 수많은 접속자가 몰리는 서버 관리 등
    • 주로 사용하는 언어 : C++ (고사양 게임 프로그래밍), C# (유니티를 사용하는 게임), 자바스크립트 (웹게임)

  • 응용 소프트웨어 개발자 : 컴퓨터 프로그램을 만드는 개발자 
    • 통상적으로 PC용 프로그램을 개발하는 사람 
    • 응용 소프트웨어 : 컴퓨터에서 사용하는 워드, 포토샵, 압축프로그램, 동영상 재생 프로그램 등
    • 주로 사용하는 언어 : C++ / C# (윈도우용 프로그램 개발), 스위프트 (맥용 프로그램 개발)   

  • 임베디드 개발자 : 하드웨어를 제어하는 개발자 
    • 정해진 목적에 맞게 설계된 하드웨어의 작동을 프로그래밍하는 직군 
    • 하드웨어 자체를 개발하기도 하며 이를 작동시킬 소프트웨어를 개발함 
    • 임베디드 시스템 : 기계 또는 기타 제어가 필요한 시스템을 제어하는 컴퓨터 시스템 
                                 : 전자 제품 같은 기기 내부에 내장되어 정해진 목적에 맞는 기능을 수행함 
      ex) 냉장고의 온도 조절기, 스마트 TV, 자동차, 로봇, 항공기 등 

  • 정보 보안 전문가 : 각종 보안 위협으로부터 시스템과 서비스를 방어 
    • 언제, 어디로 해커가 숨어들지 모르기 때문에 건물 구조를 구석구석 알고 있어야 하고, 해커가 동원할 수 있는 모든 방법을 예상할 수 있어야 함 
    • 해커 (=크래커)
      • 화이트 해커 : 보안 업계에 종사하는 해커 
      • 블랙 해커 : 전문지식을 범죄에 활용하는 크래커 

  • 인공지능 개발자 : 인간의 사고와 학습같은 지적 능력을 컴퓨터를 통해 구현하는 기술 

  • 데이터베이스 개발자 : 대량의 정보를 다루고 그 체계를 구축  
    • IT 서비스를 이용할 때 우리가 사용하는 모든 정보는 서버의 데이터베이스에 저장됨 
    • 데이터베이스 -> 디지털 정보들을 보관하는 대형 도서관 
      • 데이터베이스 개발자 -> 도서관에서 사서와 같은 역할을 맡아 정보를 저장, 조회, 관리할 수 있도록 설계 
        (디지털 정보의 사서) 

  • 클라우드 개발자 : 클라우드 형태로 제공되는 서버 관련 서비스를 다룸 

  • 데브옵스 개발자 : 개발 전반의 과정들을 최적화하고 관리
    • 모든 과정들이 빠르고 연속적으로 진행되도록 자동화하고, 시간과 자원 낭비가 없도록 최적화 수행 
    • 데브옵스 : 개발과 운영의 전 과정들이 빠르고 안정적으로 진행되도록 관리하는 것 

 

01-2. 개발자는 대체 뭐하는 사람인가요? 

  • 소스 코드 : 개발자가 프로그래밍 언어를 이용하여 만든 코드, 컴퓨터에 명령을 내리기 위해 작성 
  • 코딩 : 소스 코드를 작성하는 작업 
  • 코더 : 코딩을 하는 사람
  • 프로그래밍 : 컴퓨터에서 동작하는 프로그램 제작의 전 과정 
  • 프로그래머 : 프로그램에 어떤 기능을 추가하고 구현할지를 계획하는 사람 
  • 알고리즘 : 순서도를 컴퓨터가 수행할 때, 어떤 순서로 진행할지, 예측될 발생 상황, 그에 따른 행동 등을 설계하는 것

  • 개발 과정 
    • 요구 사항 분석 : 기획팀에서 "특정한 기능을 수행하는 앱을 만들어달라" 라고 주문하면 
    • 시스템 명세 : 개발자는 먼저 요구 사항을 구체화하고 
    • 구조 설계 : 이를 어떻게 구현할지 전반적인 구상을 시작
    • 구현 : 앱의 전반적인 구조를 설계하고, 개발 방식, 데이터 관리를 포함해 프로그래밍과 코딩을 함
    • 테스트 : 오류 점검과 기능 테스트, 코드 수정 등
    • 유지 보수 : 제품을 출시한 후에도 각종 버그를 찾아 해결하고, 기능 업데이트 하며 꾸준하게 관리 

  • 소프트웨어 : 눈에 보이지 않는 부분 
    ex) 프로그램, 라이브러리, 데이터 등 
  • 하드웨어 : 눈에 보이고 만져지는 부분
     ex) 컴퓨터 본체, CPU, 메모리 등 

  • 프로그램
    • 시스템 프로그램 : 운영체제를 구성하는 소프트웨어로써 사용자가 컴퓨터를 원활히 사용할 수 있는 환경 제공
      ex) 집을 구성하는 건물, 수도, 전기, 난방시설 
    • 응용 프로그램 : 각각의 목적에 따라 사용자가 직접 손에 쥐고 실행하여 활용할 수 있는 프로그램 
      ex) 집 안의 청소기, 세탁기, 냉장고 같은 워드, 포토샵, 게임, 크롬 등

 


🎁기본미션 

 

🎁선택미션

개발자와 연관된 직군에 대해 이해한 내용을 바탕으로 위와 같이 포스팅 함