코드잇 부스트 백엔드 파트 스터디 내용 정리 5/2
<프로그래밍 오버뷰 >
1. 프로그래밍 혁명
01. 코딩이란 뭘까?
💡코딩
→ 컴퓨터에게 어떤 동작을 시키기 위해 명령을 내리는 것
• 컴퓨터는 0과 1만 이해할 수 있기 때문에 사람의 언어로 이야기하면 이해하지 못함
• 코딩을 작성하면 0과 1로 번역되어 컴퓨터가 이해할 수 있게 됨
코딩으로 할 수 있는 것
• 사람이 하기 힘든 복잡한 계산
• 매일 반복적으로 해야 하는 일
• 컴퓨터 안에서 이루어질 수 있는 것 (게임, 채팅, 온라인 쇼핑 등)
우리가 사용할 수 있도록 코딩으로 만든 것 → 💡소프트웨어
우리가 손으로 만질 수 있는 컴퓨터 → 하드웨어
02. 코딩이 바꾸는 세상
인공지능, 클라우드 , 메타버스 → 💡소프트웨어 기술
개발자 수요가 폭발적으로 성장
코딩 성장 이유
• 기술의 발전
• 컴퓨터가 주변에 많아짐
• 💡코딩 접근성이 좋아짐 (라이브러리, 프레임워크 발전)
03. 프로그래밍 혁명에 참여하는 방법
• 트렌드 이해하기
• 직접 코딩해보기
• 개발자 되기
2. 입문자가 알기 힘든 두 가지
01. 내 코드는 왜 초라해 보일까?
코딩의 큰 그림을 미리 파악하면 공부할 때 편하다
프로그래밍의 큰 그림
• 💡동작 원리
여러 작은 부분들로 나누어져서 만들어진다
클라이언트 , 서버 (데이터베이스)
• 💡구현 방법
02. 서비스의 동작 원리
• 클라이언트 서브 구조
클라이언트 : 뭔가 요구하는 역할
서버 : 뭔가 제공해주는 역할
웹사이트, 모바일 앱, 게임, 데이터 사이언스 등 다양한 분야에서 두루 활용되는 보편적인 구조
💡클라이언트
• HTML (이미지, 글자, 버튼 같은 게 어디에 들어갈지 정해줌)
• CSS (크기, 색깔 , 테두리 선의 굵기 등)
• JS (사이트가 어떻게 반응할지)
💡 서버
→ 웹사이트를 보여주기 위해 필요한 코드는 서버에서 온다
• 데이터베이스가 있음 (정보 저장)
• 서비스 운영을 위해 다양한 역할을 함
💡 클라이언트가 서버로부터 사이트를 어떻게 받아 낼까?
1. 브라우저를 켜고 주소창에 주소를 입력하고 엔터를 침
2. DNS라는 인터넷 주소록에서 주소를 찾음 (IP 주소)
3. IP주소에 해당하는 서버 컴퓨터한테 사이트를 달라고 요구
4. 사이트를 띄우기 위한 HTML,CSS,JS 코드를 클라이언트한테 제공
5. 코드를 브라우저가 해석해서 유저에게 보여줌
03. 서비스의 구현 방법
주로 반복문, 조건문 사용
개발자들이 실제로 하는 일 → 작은 단위의 논리를 세우고 하나로 이어지도록 합치는 것
라이브러리, 프레임워크(남이 미리 만들어둔 코드)를 사용해서 서비스를 구현한다
3. 프로그래밍 분야들
1. 웹 개발 분야
• 수요가 제일 많다
• 컴퓨터 뿐만 아니라 모바일에서도 볼 수 있다.
• 웹서비스의 구조
💡클라이언트- 프론트 엔드
사용자에게 보여지는 화면을 그려주는 것
HTML, CSS, JS 적용
페이지가 복잡해지면 → 프론트엔드 라이브러리, 프레임워크 사용( React)
💡서버 - 백엔드
사용자들에게 안 보이는 부분
백엔드에서 가장 대표적인 요소 → 데이터베이스
API→ 두 프로그램이 서로 소통할 수 있게 해주는 것 (프론트엔드와 백엔드 소통)
API 언어 → Java, Python, Kotlin, PHP, Ruby ,JS(node.js)
데이터베이스 → SQL,(규칙이 엄격, 안정적) , NOSQL(유연)
프론트 위주로 공부하고 백엔드는 가볍게 한다면 → NOSQL
백엔드를 제대로 해보고 싶다면 → SQL 공부 후 NOSQL
2. 모바일 개발 분야
클라이언트→ 스마트폰에 있는 앱이 클라이언트 역할을 한다
서버→개념이 웹 개발과 동일
- 앱스토어에서 앱을 다운로드 받으면 클라이언트 쪽 코드가 핸드폰에 설치된다
- 필요한 부분들에 대해서 앱이 서버에 요청
프론트엔드 개발자 → 웹사이트 클라이언트 쪽 개발자
모바일 개발자 → 모바일 클라이언트 쪽 개발자
백엔드/서버 개발자 → 모바일, 웹사이트 백엔드 개발자
💡모바일 개발
• 아이폰 앱 개발은 Swift
• 안드로이드 앱 개발은 Kotlin
• 크로스 플랫폼 → React Native (안드로이드, 아이폰 둘 다 커버), Flutter
필요한 것만 배워서 빠르게 모바일 개발을 하고 싶다면 다트와 플러터
자바스크립트와 리액트를 배울 계획이 있다면 리액트 네이티브
3. 데이터 분야
• 머신러닝
컴퓨터에게 모든 규칙을 하나하나 알려준 게 아니라 데이터를 던져줘서 스스로 규칙을 찾아내도록 함
• 데이터 엔지니어 (데이터를 관리하고 활용할 수 있도록 구축)
• 데이터 애널리스트 (python같은 언어로 데이터를 분석)
• 데이터 사이언티스트 (머신러닝을 이용해서 미래를 예측)
• 머신러닝 엔지니어 ( 머신러닝 알고리즘을 실제로 서비스에 녹여냄)
• 머신러닝 리서쳐 ( 머신러닝 알고리즘 개선 고민)
→ 데이터분야에서 파이썬을 많이 사용한다
4. 다양한 분야
• 게임 → 주로 Unity 사용 (C#언어)
• 블록체인 → 탈중앙화 ( 백엔드가 탈중앙화된 형태)
• 블록체인 엔지니어 (블록체인 위에 올라가는 앱을 만드는 사람)
DApp
이더리움→ 솔리디티 언어 공부 필요
• 임베디드 시스템 (주로 c언어 사용)
• 사물인터넷 (임베디드 시스템 활용)
💡백엔드 커리 → 언어 (js), 프레임워크 (node.js), 데이터베이스 (sql, mongoDB)
'🏃♀️ 대외활동 > Codeit Boost-Node.js' 카테고리의 다른 글
2주차 프로그래밍과 데이터 in JavaScript [코드잇 부스트 백엔드 스터디] (1) | 2024.05.12 |
---|---|
2주차 프로그래밍 핵심 개념 in JavaScript [코드잇 부스터 백엔드 스터디] (2) | 2024.05.12 |
1주차 프로그래밍 언어 이해하기 [코드잇 부스트 백엔드 스터디] (0) | 2024.05.08 |
1주차 프로그래밍 시작하기 in JavaScript [코드잇 부스트 백엔드 스터디] (0) | 2024.05.08 |
1주차 프로그래밍 프리뷰 [코드잇 부스트 백엔드 스터디] (0) | 2024.05.08 |