본문 바로가기
ETC/LEARN

[혼공얄코] 혼자 공부하는 얄팍한 코딩 지식 시작! 다시 혼공학습단!

by 아이엠제니 2024. 7. 2.

 

💾 혼공학습단 12기

 


 

 

 

 

챕터 0. 다시 혼공학습단


직장인이라서 방학은 없지만, 마음만은 방학이라고 생각하며... 🫠

방학 기간에 다시 혼공학습단을 지원하여, 공부하게 되었다.

이전에 10기를 지원했었고, 당시에는 <혼자 공부하는 자바>로 진행했다.

이번에는 분명 단어도 알고, 뭔지 알겠는데? 확실히 개념이 잡히지 않는 코딩 관련 지식들에 쌓아 보기 위해!

<혼자 공부하는 얄팍한 코딩 지식> 도서를 신청했다.

사실 이 책은 이전에도 읽은 적이 있는데, 그때는 개정 전의 책이었고!

이번에 개정판으로 진행해보려고 한다.

 

여기를 가도, 저기를 가도 AI를 빼고는 이제 이야기할 수 없을 것 같은데?

시대에 발맞춰, 이 책도 그 내용들을 담아 개정이 된 것 같다.

 

 

작년에도 이 시기에 혼공학습단을 진행했었다!

그때도 여름방학이 있었는데, 이번에도 러키비키 한 여름방학이 있다.

혼공학습단은 총 6주 동안 진행이 된다.

진도를 보며 스스로 학습하기.

 

이전에 긴가민가하게 알고 있었던 개념들을 확실히 알아가고 싶다.

짧다면 짧고, 길다면 긴 6주 동안 열심히 학습을 하기로 스스로 다짐하며!

혼공학습단 참여를 다시 시작한다! 💛

 

 

 

 

 

 

챕터 1. 개발자 이해하기: 개발과 개발자 용어 알기

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


 

 

 

1. 개발자 vs 작가


  • 개발자가 하는 일은 작가가 하는 일과 비슷
  • 무에서 유를 창조하고, 누군가 이해할 수 있도록 무언가를 작성함
  • 개발은 컴퓨터가 이해할 수 있는 언어로, 작가는 사람이 이해할 수 있는 언어로 작성함
개발자 작가
코딩 글 쓰기
프로그래밍 글 짓기
개발 책 쓰기

 

 

 

2. 웹 개발자


  • 웹 사이트를 개발하는 개발자
  • 웹사이트는 눈에 보이는 부분과 보이지 않는 부분으로 구성되어 있음
    • 웹 퍼블리셔 / UI 개발자
      • 웹사이트에서 보이는 부분을 담당하는 개발자 (해외에서는 UI 개발자로 부름)
      • 주로 사용하는 언어는 HTML과 CSS이며, 자바스크립트를 사용하기도 함
      • 웹사이트의 외적 요소를 코드로 구현하는 역할
    • 프론트엔드 개발자
      • 화면에 보이는 요소들을 만들 뿐만 아니라, 자바스크립트를 사용하여 그 요소들에 기능을 부여하는 일까지 담당
      • 사용자의 클릭이나 드래그와 같은 동작에 따라 다양한 기능이 실행되도록 프로그래밍
      • 클라이언트 개발이라고 부르기도 함
    • 백엔드 개발자
      • 웹사이트에서 눈에 보이지 않는 요소를 개발함
      • 서버개발자라고 부르기도 함
      • 데이터베이스에 저장되는 각종 정보에 대한 입출력, 데이터 분석과 가공, 로그인을 비롯한 보안 요소 관리 등이 백엔드 개발자를 통해 이뤄짐
      • 자바스크립트, 파이썬, PHP, 자바 등
    • 풀스택 개발자
      • 프론트엔드과 백엔드 관련 지식을 고루 갖추어, 혼자서도 웹 서비스 전체를 개발할 줄 아는 개발자

 

 

 

3. 모바일 개발자


  • 스마트폰에서 동작하는 애플리케이션을 개발함
  • 앱 개발자로고도 함
  • 안드로이드 개발자 & iOS 개발자
    • 안드로이드 개발자
      • 갤럭시를 비롯한 안드로이드 스마트폰 기반의 모바일 앱 개발
      • 자바, 코틀린
    • iOS 개발자
      • 아이폰과 아이패드용 모바일 앱을 개발함
      • 스위프트
    • 크로스플랫폼
      • 하나의 소스 코드로 양쪽 모두에서 동작하는 앱을 만들 수 있음
      • 종류
        • 플러터(다트), 리액트 네이티브(자바스크립트), 자마린(C#)

 

 

 

4. 게임 개발자 


  • 게임의 전체적인 구조를 설계해서 게임이라는 하나의 결과물을 만드는 직군
  • 게임 진행을 위한 복잡한 알고리즘부터 물리 엔진 구현, 3D 그래픽 렌더링, 수많은 접속자가 몰리는 서버의 원활한 관리 등 게임의 모든 구성 요소를 다룰 수 있어야 함
  • C, C++, C#, 자바스크립트 등

 

 

 

5. 응용 소프트웨어 개발자


  • PC용 프로그램을 개발하는 사람을 지칭함
  • 워드, 포토샵, 압축 프로그램, 동영상 재생 프로그램 등이 응용 소프트웨어이며, 응용 소프트웨어 개발자가 이를 만들어 냄
  • C, JAVA, Python, C++, C#, 스위프트 등

 

 

 

6. 임베디드 개발자 


  • 정해진 목적게 맞게 설계된 하드웨어의 작동을 프로그래밍하는 직군임
  • 임베디드 시스템은 기계 또는 기타 제어가 필요한 시스템을 제어하는 컴퓨터 시스템임. 전자 제품 같은 기기 내부에 내장되어 목적이 맞는 기능을 수행함. (냉장고의 온도 조절기, 스마트 TV, 자동차, 로봇, 항공기 등)
  • 하는 일
    • 하드웨어 자체 개발
    • 이를 작동시킬 소프트웨어 개발
  • C, C+, 어셈블리어
  • IoT 기기의 운영체제로 리눅스를 많이 사용함. 리눅스 커널을 깊이 있게 공부해 두는 것도 임베디드 개발자를 준비하는 데 큰 도움이 됨

 

 

 

7. 정보 보안 전문가


  • 컴퓨터 보안은 홀로 큰 건물 하나를 지키는 것과도 같음
  • 사이버 보안, 정보 기술 보안이라고도 하며, 데이터 도난이나 손상을 차단하고 컴퓨터 시스템을 보호하는 역할을 수행함
  • 정보 보안 전문가가 되려면 프로그래밍, 네트워크, 컴퓨터 구조, 운영체제 등 컴퓨터 공학 전반에 걸친 지식들이 필요함

 

 

 

8. 인공지능 개발자


인공지능: 인간의 지능을 모방하여 수집한 정보를 기반으로 반복 작업을 수행하는 시스템
  • 인공지능 개발은 크게 머신러닝 개발과 딥러닝 개발로 구분할 수 있음
  • 인공지능 > 머신러닝 > 딥러닝
  • 수학, 통계학, 컴퓨터 공학 등 깊이 있는 지식 요구함

 

 

 

9. 데이터베이스 개발자


  • 데이터베이스에 특화된 업무 수행
  • 정보를 효과적으로 저장, 조회, 관리할 수 있도록 데이버테이스 설계
  • 데이터베이스 관리 시스템(DBMS)에 대한 깊은 이해와 SQL과 같은 데이터베이스 질의 언어에 능숙해야 함. 데이터 구조, 알고리즘, 보안에 대한 지식도 갖춰야 함

 

 

 

10. 클라우드 개발자


  • 서버 시스템을 구축하고, 서버가 안정적으로 돌아가도록 유지 보수하며, 사용자 증가, 하드웨어 결함 등 각종 이슈에 대응하려면 고도의 기술적 지식이 필요함
  • 요즘은 여러 기업에서 서버에 관련된 다양한 기능들을 제공하여 기술 부담을 줄여주고 있음
    • 아마존 AWS, 마이크로소프트 Azure 등을 클라우드 서비스라고 함
  • 클라우드 서비스를 적절히 활용하여 자사 서비스를 구축하려면 다양한 지식 필요

 

 

 

11. 데브옵스 개발자


  • 데브옵스: 개발과 운영의 전 과정들이 빠르고 안정적으로 진행되도록 관리하는 것
    • 기능 추가 및 수정, 오류 해결, 성능 개선 등의 업데이트 작업이  서비스 종료 전까지 계속됨
    • 프로그램, 코드 통합, 테스트, 새 버전 출시, 모니터링, 피드백, 긴급 문제 해결 등의 과정
  • 데브옵스 개발자는 이 과정들이 빠르고 연속적으로 진행되도록 자동화하고, 시간과 자원의 낭비가 없도록 최적화를 수행함. 또한, 성능 문제나 버그가 신속하게 발견되도록 테스팅 및 모니터링 시스템을 설계하고 모든 기록들을 수집해서 관리함

 

 

 

 

 

01-2 코딩과 프로그래밍, 앱과 프로그램


 

1. 코딩


  • 소스 코드: 컴퓨터에 어떤 명령을 내리기 위해 컴퓨터가 이해할 수 있은 언어로 작성한 정보
  • 코딩: 소스 코드를 작성하는 작업
  • 코더: 컴퓨터가 처리할 수 있는 명령어로 코드(부호)를 작성하는 사람을 지칭함

 

 

 

2. 프로그래밍


  • 코딩보다 더 넓은 개념
  • 컴퓨터에서 동작하는 프로그램을 설계하고 만드는 전 과정
  • 알고리즘: 컴퓨터가 수행할 절차대로 순서도를 구성하는 것
  • 프로그래밍: 설계한 것을 프로그래밍 언어로 작성하는 과정을 프로그래밍이라고 하고, 이때 만들어진 결과물이 소스 코드임

 

 

 

3. 개발


코딩이나 프로그래밍보다 더 포괄적인 개념으로 소프트웨어의 기술적 계획부터 제작, 사후 관리까지 모두 포함
  • 소프트웨어 개발은 코딩이나 프로그래밍 외에 더 많은 요소가 결합되어 있음
    1. 요구 사항 분석
    2. 시스템 명세
    3. 구조 설계
    4. 구현
    5. 테스트
    6. 유지 보수

 

 

 

4. 소프트웨어 vs 프로그램 vs 애플리케이션


  • 라이브러리
    • 어떤 일을 수행하기 위해 필요한 기능을 일정 단위로 묶은 것
  •  프로그램
    • 특정 목적을 위해 실행할 수 있는 대상으로써 주어진 일련의 작업들을 수행하기 위해 프로그래밍됨
    • 라이브러리들 중 일부는 프로그램의 구성 요소로 들어가기도 함
  • 소프트웨어
    • 위 모든 것을 아우르는 게 소프트웨어
    • 컴퓨터의 물리적이지 않은 모든 요소를 포함하는 용어
  • 애플리케이션
    • 응용 프로그램이 바로 애플리케이션임
    • 프로그램
      • 시스템 프로그램 & 응용 프로그램
        • 시스템 프로그램: 운영체제를 구성하는 소프트웨어로써 사용자가 컴퓨터를 원활히 사용할 수 있는 환경 제공
        • 응용 프로그램: 각각의 목적에 따라 사용자가 직접 손에 쥐고 실행하여 활용할 수 있는 프로그램 (워드, 포토샵, 게임, 크롬 등)

 

 

 

 

 

기본 숙제(필수)


Ch.01(01-1, 01-2) 확인 문제 풀고 인증하기 (p.46~47 & p.56~57)

 

01-1 확인 문제

1. 다음 중 프론트엔드 개발자가 다루는 언어가 아닌 것은 무엇인가요?

  1. HTML
  2. CSS
  3. 스위프트
  4. 자바스크립트
  5. 타입스크립트

 

2. 다음 중 아래에 해당하는 개발자의 종류를 써 보세요.

  • 로봇 청소기의 기기 제어 소프트웨어 개발 ( 임베디드 개발자 )
  • 커뮤니티 웹 사이트의 회원 정보를 데이터베이스에 저장하는 과정을 개발 ( 백엔드 개발자 )
  • 윈도우용 화면 캡처 프로그램을 개발 ( 응용 프로그램 개발자 )
  • 디자이너가 작업한 이미지대로 웹 화면을 개발 ( 프론트엔드 개발자 )
  • 아이폰용 사진 꾸미기 앱을 개발 ( iOS 개발자 )
  • 운전자의 조작 없이 움직이는 자율주행 자동차 개발 ( 인공지능 개발자 )

 

3. 다음 용어 중 가장 연관이 깊은 것 끼리 짝지으세요.

  1. 프론트엔드 개발자 - ㄷ.클라이언트 개발자
  2. 백엔드 개발자 - ㄱ. 서버 개발
  3. 모바일 개발자 - ㄴ.앱 개발

 

4. 다음 문장 중 괄호 안에 알맞은 내용을 써 보세요.

( 크로스 플랫폼 )(을)를 사용하면 하나의 소스 코드로 안드로이드와 iOS 모두에서 동작할 수 있는 앱을 만들 수 있습니다.

 

5. 다음 중 하드웨어와 가장 밀접한 프로그래밍을 하는 직군은 무엇인가요?

  1. 웹 개발자
  2. 모바일 개발자
  3. 응용 프로그램 개발자
  4. 임베디드 개발자
  5. 정보 보안 문가

 

 

01-2 확인문제

1. 다음 문장 중 괄호 안에 알맞은 내용을 작성해 보세요.

특정 작업을 수행하기 위한 기능을 일정 단위로 모듈화 한 것을 ( 라이브러리 )(이)라고 합니다.

 

 

2. 다음 문장 중 괄호 안에 알맞은 내용을 써 보세요.

프로그램은 운영체제를 구성하는 ( 시스템 ) 프로그램, 그리고 애플리케이션이라고도 불리는 ( 응용 ) 프로그램으로 나눌 수 있습니다.

 

 

3. 종이에 적힌 소스 코드를 컴퓨터에 입력하는 작업으로 가장 적합한 단어를 고르세요.

  1. 코딩
  2. 프로그래밍
  3. 개발
  4. 애플리케이션
  5. 라이브러리

 

4. 다음 중 틀린 것을 고르세요.

  1. 프로그래밍은 코딩을 통해서만 할 수 있는 것이 아닙니다.
  2. 소프트웨어 완성 이후의 작업들은 개발에 포함되지 않습니다.
  3. 모바일 앱은 프로그래밍의 일종입니다.
  4. 개발은 프로그래밍이나 코딩보다 포괄적인 과정입니다.
  5. 프로그램에는 소스 코드가 포함됩니다.

 

5. 다음 개발 과정 앞에 순서대로 번호를 작성해 보세요.

  • [ 3 ] 구조 설계
  • [ 5 ] 테스트
  • [ 2 ] 시스템 명세
  • [ 4 ] 구현
  • [ 6 ] 유지보수
  • [ 1 ] 요구 사항 분석

 

 

 

한빛미디어 <혼자 공부하는 얄팍한 코딩 지식> 책 참고
300x250