본문 바로가기
ETC/LEARN

IT 입문자를 위한 전반적인 개념 정리 - 더코딩클럽

by 아이엠제니 2024. 5. 1.

 


IT 입문자를 위한 전반적인 개념 정리
더코딩클럽
인프런
2024.04.30~05.01
https://inf.run/E3w9Y

 

 

 

1. 컴퓨터


1) 하드웨어

  1. IT 세계에서는 컴퓨터를 구성하는 물리적인 장치를 뜻함
  2. CPU: 컴퓨터의 핵심적인 구성 물질 (중앙처리장치)
    • 시스템을 제어하고, 계산하는 역할을 함 
    • 사람의 뇌와 같음
    • 데이터를 처리하고 연산하는 능력
    • 명령어를 실행하여 컴퓨터를 동작시키는 능력
  3. 메모리 (기억장치)
    • 기억을 하는 공간
    • 컴퓨터에서 데이터를 저장할 때, 메모리에 저장됨
    • CPU가 연산한 값들을 저장함
    • 프로그램이 실행되는 동안 필요한 정보를 저장함
    • 데이저 저장, 메모리 접근, 프로그램 실행 등 다양한 역할을 수행함
  4. 입출력장치
    • 키보드, 마우스, 프린터

 

2) 소프트웨어

  • 눈에 보이지 않는 컴퓨터 프로그램
    1. 응용 소프트웨어: 사용자의 문제를 직접 해결하는 소프트웨어
      • excel, ppt, photoshop
    2. 시스템 소프트웨어: 응용 소프트웨어를 실행하기 위한 플랫폼을 제공하기 위한 소프트웨어
      • 유틸리티, 프로그래밍언어, 컴파일러, 운영 체제(리눅스, window, mac)

 

3) 운영체제

  • 운영체제(operating system)이란? -> 하드웨어와 응용 프로그램 사이에 중재자 역할
    1. 자원관리: 하드웨어 자원들을 이용
    2. 보안관리: 방화벽 관리, 권한 관리

 

4) 응용프로그램

  • 응용프로그램이란? 
    • 소프트웨어 프로그램의 한 형태
    • PC 안에 있는 대부분의 프로그램들
      • 모바일: app
      • 컴퓨터: 애플리케이션

 

5) 네트워크

  1. 네트워크
    • 컴퓨터 간에 데이터 자원 공유하는 것
    • (스마트폰도 CPU와 내장 메모리가 있어 컴퓨터라 칭할 수 있음)
  2. IP (Internet Protocol)
    • IT에서 데이터 통신할 때 규칙이 필요 -> 프로토콜
      • https, https, ftp, telnet...
  3. IP 주소
    • 인터넷에 연결된 컴퓨터 고유 식벽자

 

 

 

2. 개발 기본 지식


1) 프로그래밍 언어

  • 컴퓨터 프로그램(ex: 카카오톡)을 만드는 언어
  • 종류: C, javascript, java, python...
  • CPU는 2진법으로 된 0,1(기계어)만 해석
  • 컴파일러가 번역해준 기계어만 해석

 

2) API

  • 상호작용하는 프로그램들의 매개체
프로그램 <-> (카카오 로그인, 푸시알림, 위치 가져오기) <-> 프로그램

 

3) 형상관리 시스템

  • 소스코드의 변경사항을 관리하는 도구
  • Github
    • git으로 관리되는 소스코드를 저장하는 원격저장소

 

💡 Git 명령어

  • merge: 소스코드의 변경점을 취합하는 명령어
  • branch: 독립적인 개발 라인
  • push: 로컬의 소스코드를 원격저장소에 저장할 때 사용
  • fetch: 원격저장소가 변경사항이 있는지 확인
  • pull: fetch+merge의 합성어. 변경사항을 확인하고, 실제 변경점을 취합하는 명령어
  • commit: 로컬에서 변경된 부분을 저장하는 명령어. 원격저장소에 저장하는 것이 아님

 

4) 라이브러리 & 프레임워크

  1. 라이브러리
    • 공통적으로 쓰는 기능을 모듈화한 뭉치
    • 개발자가 컨트롤
  2. 프레임워크
    • 프로그램을 개발할 때 제공되는 정형화된 소프트웨어. 라이브러리의 상위개념
    • 전자정부프레임워크 (공공)
      • 구조화된 틀 -> 일관성, 유지보수 용이
    • 프레임워크가 컨트롤

 

5) 클라이언트 & 서버

  1. 클라이언트
    • 서버에 요청을 하는 프로그램
  2. 서버
    • 클라이언트의 요청에 따라 서비스를 제공하는 소프트웨어

 

6) 웹

  • 전세계 사람들의 정보 공유
  • 웹은 거미줄처럼 연결되어 있음
  • HTML, CSS, JS로 이루어져 있음
    • HTML: 문서의 뼈대 및 골격
    • CSS: 색상, 폰트, 애니메이션
    • JS: 동적 기능 구현

 

7) 도메인 & URL

  • 도메인
    • 사람들이 원하는 웹사이트에 방문할 때 입력하는 주소
https://www.notion.so ---DNS--> 192.168.0.6
  • DNS
    • 도메인 이름을 IP 주소로 변환하는 시스템
  • URL
    • 도메인과 마찬가지로 사이트에 접속할 때 입력하는 주소
    • URL은 서버의 주소, 하위 디렉토리, 프로토콜 모두를 합친 주소
https://www.naver.com:80/blog/index.html
  • Https : 프로토콜
  • www.naver.com : 도메인
  • 80 : 서버 연결 포트
  • blog: 하위 디렉토리 주소
  • index.html : 웹페이지 파일 이름

 

 

 

3. 프론트엔드 


1) 브라우저가 랜더링되는 과정

  • 브라우저
    • 미디어 이미지 동영상 콘텐츠를 시각적으로 사용하는 소프트웨어
    • 크롬, 사파리, 엣지 등
  •  브라우저에서 웹이 동작하는 원리
    1. 브라우저에 URL 입력
    2. 데이터를 웹서버로부터 응답
    3. 응답 받은 데이터(html, css, javascript, 이미지)를 브라우저가 표현
  • 크로스 브라우징
    • 모든 브라우저에서 매 페이지가 잘 표현되게 하는 것

 

2) 검색엔진 최적화(SEO)

  • 검색 결과가 상위에 노출되는 것 (신규고객, 잠재고객 유입)

 

💡 검색엔진 최적화의 원리

  • 검색엔진 로봇이 웹사이트 정보 수집
    1. 검색엔진 로봇에 웹사이트 크롤링(복사)
    2. 사용자가 많이 검색하는 키워드에 대응하는 키워드 만들어둠(인덱싱)
    3. 인덱싱된 키워드에 우선순위를 매기고 높은 순서에 따라 결과로 보여줌

 

💡 노출 상단으로 높이는 방법

  • Html 시맨틱 태그 사용
  • 방문자수가 많고, 지속 시간이 긴 콘텐츠 제작
  • 사람들이 많이 검색하는 키워드가 콘텐츠에 포함
  • 네이버, 구글에 돈주고 광고를 함
  • 양질의 콘텐츠를 만들기

 

3) 반응형 웹

  • 크기에 따라 콘텐츠가 늘어나거나 줄어드는 웹사이트
  • 모바일 웹
    • 모바일 장치에서 접속했을 때 표현되는 웹사이트

 

4) CSR, SSR

  • CSR (Client Side Rendering)
    • 화면쪽에서 렌더링 (렌더링은 웹사이트에 사이트가 그려지는 과정)
  • SSR (Server Side Rendering)
    • 서버쪽에서 렌더링
  • 차이점
    1. 로딩 시간: 첫 페이지 그리고 나머지 페이지 로딩 시간이 다름
      1. 최초의 로딩 속도는 SSR이 빠름 (필요한 파일만 받기 때문에)
      2. 두 번째 화면부터는 CSR이 빠름 (첫 번째 화면에서 필요한 데이터들을 모두 받았기 때문에)
    2. 검색엔진 최적화 다름

 

5) SPA (single page application)

  • 하나의 페이지 서비스
    • 최초 요청 시에, HTML, CSS, JS 파일을 가지고 있음
  • MPA -> SPA
  • 장점
    1. 최초에 모든 리소스들을 받음
    2. 하나의 페이지 내에서 움직여서 화면 전환이 부드러움
    3. 유지보수가 용이

 

6) 캐싱

  • 데이터를 임시로 저장하는 공간
  • 장점
    1. 성능 향상
    2. 통신 최소화

 

 

 

4. 백엔드


1) 데이터베이스

  • 데이터베이스
    • 데이터는 보관하는 저장소
  • DBMS
    • Database Managerment System
  • SQL
    • Structured Query Language
    • 데이터들을 조작하기 위해 사용되는 언어

 

2) 클라우드

  • 가상화된 서버 , 데이터베이스
  • 장점
    • 유연성, 접근성
  • 단점
    • 보안문제, 의존성

 

3) 아키텍처 & 서버 성능 최적화

  • 아키텍처 설계
    • 서비스가 어떻게 구성되고 동작하는지 설계
  • 서버 성능 최적화
    • 서버를 안정적으로 운영하는 것

 

 

 

5. 모바일


1) 모바일 용어 정리

  • 안드로이드: 모바일 운영체제
    • 언어: Kotlin, Java
    • 안드로이드 스튜디오: 통합 개발 환경
      • 앱 출시하려면, 통합 개발 환경에서 AAB 추출
      • 테스트: 공개, 비공개, 내부 테스트
  • IOS
    • 언어: swift, Objective-C
    • XCODE: 통합 개발 환경
      • 앱 출시하려면, X코드에서 앱스토어에 바로 연동할 수 있음 (심사 과정 까다로움)
      • 테스트: 테스트플라이트 어플이 따로 있음

 

2) 네이티브 & 하이브리드 & 크로스플랫폼

  • 네이티브 앱
    • 네이티브 언어로 개발된 앱
      • 안드로이드: Kotlin, Java
      • IOS: swift, Object-C
    •  장점
      1. 성능이 우수
      2. 원하는 디자인 커스텀
    • 단점
      1. 공수가 많이 투입
      2. 구글, 애플스토어에 심사
  • 하이브리드
    • 웹과 네이티브의 두가지 특성 결합
    • 장점
      1. 고객의 피드백을 빠르게 수용할 수 있음
      2. 공수가 네티이브 대비 비교적으로 적게 투입
      3. 여러 플랫폼에서 작동 가능
      4. 웹서버에 바로 업데이트 가능
    • 단점
      • 디자인적으로 제약
      • 성능이 네이티브보다 느림
  • 크로스플랫폼
    • 하나의 언어로 ios, android 개발
      • Flutter, Reat Native
    • 장점
      • 공수를 줄일 수 있음
      • 비교적 빠르게 출시 가능
    • 단점
      • 성능

 

 

 

300x250