IT 기초 지식 정리 1 (feat. 비전공자를 위한 IT 지식)

박새롬·2023년 7월 16일
1
post-thumbnail

프론트엔드 개발자가 되기 위해 공부를 시작하려고 한다! 📚
IT쪽으로는 아무것도 아는 것이 없기 때문에 모든 단어가 생소하다.
그래서 먼저 IT 용어에 익숙해지기 위해서 IT 관련 책을 읽고
차근차근 이곳에 정리해 나가려고 한다.

1장. 오리엔테이션


1-1 ) IT 용어의 상위 카테고리

운영체제프레임워크, 라이브러리프로그래밍 언어데이터 베이스
Android,iOS, 리눅스, 우분투 등Browser,Bootstrap, CSS, HTML 등Angular.js, Express.js, React.js 등JAVA, PHP, Python, RUBY 등MySQL, MariaDB, RDB, Rable 등



2장.프로그래밍 언어 & 운영체제 (OS)


2-1 ) 프로그래밍 언어와 IDE

  • 프로그래밍 언어란 ?
      컴퓨터 프로그램을 만들 때 사용하는 언어 
  • IDE (Integrated Development Environment)
      통합개발환경. 개발을 하기 위한 모든 것들을 제공해주는 환경
      
      Android Studio : 안드로이드 애플리케이션 개발용도
      Xcode : 애플 운영 체제 위의 어플리케이션 개발 용도
      Eclipse : C/C++ 개발, 자바 개발, 웹 개발 용도
      PyCharm : 파이썬 개발용도

2-2 ) 프로그래밍 언어 구분과 컴퓨터의 구성요소

  • 고수준과 저수준언어?

    저수준 언어 : 컴퓨터 친화적인 언어. ex) C언어
    고수준 언어 : 인간 친화적인 언어. ex) 자바, 파이썬, 루비 등
  • 컴퓨터의 구성 요소

      CPU : 컴퓨터의 머리역할
      RAM(메모리) : 기억장치
      HDD(하드디스크), SSD : 보조기억장치, 컴퓨터의 창고라고 볼수있다

3장. 네트워크, 클라이언트, 서버


3-1 ) Network

  • LAN ( Local Area Network)

      비교적 가까운 거리에 위치의 소수의 장치들을 서로 연결한 네트워크를 말한다. 
      일반적으로 하나의 사무실, 하나 또는 몇 개의 인접한 건물을 연결한 네트워크를 말한다.
      
    👉 여기서  LAN을 연결하는 선을 LAN선이라고 부릅니다.
  • MAN (Metropolitan Area Nrtwork )

      도시의 여러 LAN을 하나로 연결한 것.
  • WAN ( Wide Area Network)

      도시와 도시, 나라와 나라를 모두 연결한 것.     

3-2 ) 클라이언트와 서버, 운영체재

👉 어떤 파일을 '달라고'하는 컴퓨터를 '클라이언트, 파일을 '주는' 컴퓨터를 '서버'라고 합니다.

우분투란?
운영체재중 하나인 '리눅스'의 유명한 버전중 하나!
또 다른 버전으로는 Rad hat, android가 있다.


4장. API와 JSON


4-1 ) 개발자의 암호문

  • API란?

      API는 클라이언트, 서버가 서로 다른 프로그램에서 요청과 응답을 주고받을 수 있게 만든 체계이다.
  • CRUD

     C ➡️ create : 생성해줘!
     R ➡️ read : 불러와줘!
     U ➡️ update : 바꿔줘!
     D ➡️ delete : 지워줘!
     
     👉 타임라인의 CRUD 요청은 각각의 주소를 가진다. C,R,U,D 별로 주소가 생기는데 
     이렇게 되면 주소가 너무 많아지고 관리하기 힘들어진다.
     
     ex) 컴퓨터주소/timelinecreate, 컴퓨터주소/timelineread,컴퓨터주소/timelineupdate, 
     컴퓨터주소/timelinedelete ...  
     
     좀 더 체계적으로 API를 관리 하기 위해 만들어진 것이 RESTful API이다.
  • REST ( Representational State Transfer)

      Create(생성해줘!) ➡️ POST
      Read(불러와줘!) ➡️ GET
      Update(바꿔줘!) ➡️ PUT(전체)/PATCH(일부)
      Delete(지워줘!) ➡️ DLELTE
      
      👉 RESTful API에서는 주소의 개수가 줄어든다. CRUD를 하나의 주소로 관리하고
      요청을 보낼 때 위와 같이 어떤 요청을 보냈는지 파악할수 있는 '스티커'를 붙여서 함께 전송한다.

    여기서 잠깐! 👏 메소드, 함수, 요청 변수, 파라미터


    앞에서 요청을 보낼 때 스티커를 붙인다고 표현했지만, 현업에서 '스티커'라는 용어는 사용하지 않습니다. 메소드라는 용어를 사용합니다. 메소드는 방법이라는 의미의 영어 단어이지만, 개발자의 세상에선 수학의 함수와 같은 의미로 사용합니다. 학창 시절 배운 함수를 기억하시나요? x라는 입력값에 따라서 y라는 결과가 나오는 것을 함수라고 합니다. 요청을 보내면, 결과가 나오는 API의 모습이 함수와 같아서 메소드라는 용어를 사용합니다. 함수에서는 x를 변수, 파라미터라고 표현합니다. API에서도 똑같습니다. 예를 들면 로그인 요청에서 필요한 ID와 비밀번호를 '로그인 요청에 필요한 요청 변수 ' 혹은 '파라미터' 라고 현합니다.

4-2 ) 컴퓨터의 응답

  • 200번대 코드 (201,202 ...) : 잘됐어!
  • 400번대 코드 (401,404 ...) :잘안됐어 👉 클라이언트의 문제
  • 500번대 코드 (501, 505 ...) : 잘안됐어!👉서버의 문제

    SDK란?
    API를 제공해주는 '다른 소프트웨어'
    Software Development Kit의 약자로 소프트웨어를 개발하기 위한 도구입니다.

4-3 ) 요청과 응답을 주고받을 때의 형식

👉 가장 유명한 형식은 'json'이다.

  • JSON?
    {                    ➡️ JSON 시작 
    키1(Key) : 값(Value),
    키2(Key) : 값(Value)
    }                     ➡️ JSON 끝
    
    
    ex)로그인 요청 예시
    
    {                    
    "id": "wychoi",         ⬅️ 키 = id / 값 = wychoi
    "pw" : "a12345"         ⬅️ 키 = pw / 값 = a12345
    }                     

5장. 애플리케이션


5-1 ) IOS

    리젝 : 버그나 문제가 있어서 앱스토어에 앱을 올리는 것을 거절 당하는 것 
    
    👉 하지만 애플에서 리젝 사유를 명확하게 제시해주며,
    해당 문제만 해결하면 통과할 수 있다.
   

5-2 ) ANDROID

   👉 안드로이드는 상대적으로 심사 과정이 거의 없다.
   보통 앱 승인까지 반나절정도 시간소요가 되지만, 나중에 문제나 버그가 발견되면
   구글은 예고없이 마켓에서 내려버린다.

6장. 웹(Web)


6-1 ) HTML?

  • html : 마크업 언어
  • css : 스타일 언어
      HTML + CSS를 합친 작업으로 '퍼블리셔' 라고한다.
  • java script : 프로그래밍 언어

6-2 ) 반응형 웹

  • 반응형 웹이란?
        브라우저의 가로 넓이에 '반응'하여 구성요소가 변하는 기술
        반응형으로 웹을 제작하면 작업시간도 오래걸리며, 비용도 많이 들어간다.

7장. 데이터베이스와 이미지처리


7-1 ) 데이터베이스

  • 데이터란?
    👉 예를들어 쇼핑몰이라면 '회원명', '아이디',상품가격' 등이 데이터이다.
    이 데이터는 모두 '텍스트'이다.
        데이터는 단 1%의 결점도 없어야한다. 이러한 속성을 '무결성' 이라고 한다.
  • 데이터 보관방법?
      엑셀의 'sheet' , 구글의 '스프레드시트'같은 형식으로 보관하는 것을 관계형 데이터베이스에서는 'Table'이라고 표현한다.

8장. 프레임워크와 라이브러리


8-1 ) 프레임워크

  • 프레임워크란?

      공통으로 사용하는 개발 도구, 공통으로 사용하는 인터페이스.
      각 언어마다 유명한 프레임 워크가있다.
    
      자바 : 스프링 (spring)
      파이썬 : 장고 (Django)
      javaScript : 익스프레스 (Express.js)

8-2 ) 라이브러리

  • 라이브러리란?
     컴퓨터 프로그램에서 자주 사용되는 부분 프로그램들을 모아 놓은 것. 
      언제든지 자유롭게 이용할 수 있도록 구성되어 있다.

라이브러리도 다른 사람들이 만들어 놓은 코드를 이용한다는 측면에서 프레임워크와 같습니다.
하지만 프레임워크가 더 큰 개념이며, 각종 라이브러리와 코드들이 모여 프레임워크가 됩니다. 더불어 한 프로젝트에서 프레임워크는 하나만 쓸 수 있습니다. 반면 라이브러리는 더 작은 개념입니다. 망치나 가위 같은 도구들이기 때문에 한 프로젝트에서 함께 사용이 가능합니다.


9장. 협업, 소스관리,디자인


9-1 ) 커밋? 머지?

  • 깃 (Git)
      깃을 통해 개발자들은 개발 단계별로 '깃발'을 꽂을수가있다.
      그 행위를 커밋(Commit)이라고 한다.
      커밋에는 항상 메모가 따라다니는데 (어떤 개발을 했는지 적어주는 메모)
      그 메모를 커밋로그 (commit Log) 라고한다.
  • 브랜치(Branch)와 머지(Merge)
      브랜치는 '분기',가지' 라는 뜻으로, 새로운 가지를 뻗는 것을 의미한다.
      한창 개발을 하고 있는데 새로운 방향의 개발을 추가해야 할 떼, 개발자는 기존에 이어서 (덮어씌어서)
      작업하지않고 새롭게 가지를 쳐서 작업 할 수 있습니다.
      
      이후 각각의 브랜치엫서 작업한 코드들을 합치는 것을 머지(merge) 라고 한다.
profile
열심히 하고싶은 사람

0개의 댓글