HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
👻
개발 기록
/
📦
FE+BE 입문 개발자가 챙겨야 할 지식 키트
📦

FE+BE 입문 개발자가 챙겨야 할 지식 키트

Created
Sep 4, 2021 12:46 AM
Type
Crash Course
Created By
Tutor
그랩 이호연

프로그래밍 기본지식 격파하기

notion image
  • 보통 응용 프로그램을 개발하게 됨.
  • 쉘이라는 소프트웨어로 운영체제와 통신을 하며 cd, ls를 사용하는 것임.
  • 현재는 고급 언어(영어로 코딩)를 컴파일러를 거쳐 프로그램을 만듦.
  • 컴파일러와 인터프리터가 있지만 요새는 경계가 흐려지고 있음.
  • 빌드 = 컴파일 + 프로그램 실행 준비를 위한 모든 과정.
  • 프로세스 = 실행되고 있는 프로그램, 메모리에 올라간다는 것을 의미.
notion image
notion image
  • 실제로 관리자도구에서 확인하면 컴퓨터에는 수많은 프로세스가 실행되고 있음.
  • 운영체제가 전체 프로세스의 자원을 관리함.
  • (면접 단골 질문) 스레드 vs 프로세스 vs 멀티 프로세스 멀티프로세스는 공장을 여러개 세우는 것, 멀티스레드는 공장안의일꾼을 많이 생성시키는 것.
 

깃과 깃허브

  • commit : git에서 코드 변화를 기록하는 최소 단위.
  • branch : 독립적으로 작업을 진행할 수 있는 객체.
  • github : 대표적인 원격 저장소.
  • git 기본 동작 흐름 : add → commit → push 과 fetch, merge
  • pull request, code review.
  • gitflow : 대표적인 깃 브랜치 전략.
notion image
 

네트워크

  • 컴퓨터들끼리 서로 연결되어 통신을 하는 것.
  • 클라이언트 : 정보를 요구하는 주체, 서버 : 정보를 제공하는 주체. 다만 이는 상대적인 개념임.
  • IP : 네트워크 통신을 위한 주소. 모든 것은 IP 주소로 접근함.
  • 포트 : 컴퓨터 내 프로세스로 도달하기 위한 주소. 리액트는 3000임.
  • HTTP 프로토콜 : 브라우저와 서버의 통신할 때, 어플리케이션 통신할 때 사용.
  • 결과적으로 브라우저는 IP 주소와 포트를 통해 네트워크 통신함.
  • domain Name system : DNS를 거쳐 도메인을 IP 주소로 변환하여 서버로 IP주소 전송.
  • 방화벽 : 보안을 위해 네트워크 통신을 제한하는 행위. IP, port, 통신 정보 등 다양한 값을 통해 통신을 제한함.
  • OSI 7계층. 물데네전세표응 (ㅋㅋ)
  • 라이브러리 vs 프레임워크. 굳이 나누진 않지만.. 라이브러리는 보통 특정 기능을 수행하는 코드 묶음이라하고, 프레임워크는 실제로 코드를 짜는 흐름을 결정함. 리액트는 라이브러리.
편의상 리액트를 프레임워크로 분류함.
편의상 리액트를 프레임워크로 분류함.
  • API : 프로그램과 프로그램을 연결시켜주는 매개체. 하나의 서버, 인터페이스, 소프트웨어가 될 수 있음.
  • OPEN API : 특정집다에서 관리하는 데이터를 제 3자가 서버 요청을 통해 접근하도록 한 것.
notion image
  • 로그 : 프로그램을 실행하면서 남기는 기록. ex) 유저가 웹, 앱을 사용하는 기록, 서버에서 로그인 요청이 온 기록.
  • 유저 로그로는 google analytics, amplitude, hotjar 로그 데이터 베이스 등으로 유저 로그 파악. 서버로그로는 요청시간, 요청 IP 등이 있음. 하나의 프로덕트를 운영하는 데 로그 관리가 중요함.
 

웹, 모바일 개발의 큰 맥락 이해하기

💡
백엔드와 협업하면서 협업에 필요한 게 무엇인지 파악하자!

웹

  • HTML, CSS, JS 사용함.
  • 웹이 보여지는 과정 : 클라이언트와 웹 서버 컴퓨터가 도메인 요청, 서버의 응답을 하며 이루어짐.
  • CSR과 SSR
notion image
  • 반응형 웹, 크로스 브라우징,
 

모바일

  • 플랫폼 OS : android, ios, 개발언어 : kotlin, JAVA, swift, objective-c.
  • 앱이니까 바로 메인 페이지의 정보를 요청하면 서버가 응답하는 구조.
  • 앱 스토어 런칭, 심사 : 내부 직원이 직접 앱의 적합도를 판단함.
notion image
  • 앱 버전이 다양함. 웹처럼 업데이트가 쉽지 않기 때문.
  • 웹뷰 : 앱 내에서 웹을 보여주는 브라우저 역할을 함. 앱 내에 브라우저가 있다고 생각하면 됨.
  • 웹, 앱 공통점 : 동일한 API 서버를 이용함.
  • 차이점 : 웹은 페이지마다 계속해서 URL 요청 후 다운을 받기 때문에 속도가 느림. 앱은 스토어에서 한 번 다운받으면 사용할 때는 속도가 빠름. 다만 SPA 방식, 쿠키 등으로 개발하면 속도를 향상시킬 수 있음. 웹은 코드를 바꾼 후 서버에 업로드하면 바로 반영이되지만 앱은 코드를 바꾸려면 심사를 통과해야 하기 때문에 대응이 느림. 웹은 컴퓨터 장치를 자유자재로 이용할 수 없음. ex) 푸시 설정, 카메라, 센서 등. 앱은 장치 설정에 자유로움.
 

백엔드 개발의 큰 맥락 이해하기

  • 크게 서버 + 클라우드로 나눌 수 있음.
  • 서비스에 쓰이는 대표적인 서버로 데이터베이스 서버, API서버(WAS), 스토리지(파일) 서버가 있음.
  • 데이터 베이스는 하나의 프로그램. 테이블로 이루어짐. 서버는 데이터베이스 프로그램을 실행하고 있는 컴퓨터임.
  • 역할 별로 데이터 베이스가 나뉨. 유저 데이터 베이스, 상품 데이터베이스.
  • 보통 SQL로 데이터와의 통신을 함.
  • 데이터 베이스를 클라 또는 유저에게 바로 전달하면 안되기 때문에 API 서버를 만들어 중계함.
마이크로 서비스(MS) - 하나의 API를 돌릴 수도 있지만 요새는 역할 별로 API를 나눠 관리함.
마이크로 서비스(MS) - 하나의 API를 돌릴 수도 있지만 요새는 역할 별로 API를 나눠 관리함.
  • 스토리지 : 이미지, 비디오, 음악, 문서를 가져옴. 스토리지 서버의 주소를 바탕으로 가져오는 것임,
notion image
  • 클라우드가 부상하며 AWS를 주로 사용함. +) azure, naver cloud platform, cafe24
  • 가상화 기술(도커) : 일반적으로 운영체제 위에 프로그램이 도는데 도커를 사용하면 virtual machine과 container를 이용해 무언가(?)를 할 수 있음. 궁금하면 더 찾아보기.
  • 클라우는 컴퓨팅 자원을 제공하고 손쉽게 네트워크 관리를 할 수 있음.
  • 클라이언트 요청을 처리하기 위해 CPU, 메모리를 사용함. 요청이 많아지면 응답 속도가 드려지기 때문에 여러 대를 사용하여 로드 밸런싱을 함. 트래픽을 분산시켜주는 역할.
  • 서버 스케일링
notion image
  • 서버 모니터링 : 서버 컴퓨터 혹은 프로그램의 상태를 확인하는 작업.
 

 

회사에서 개발자들이 하는 일 정리

💡
어떻게 협업을 하는지, 소프트웨어가 어떻게 실제 서비스로 이루어지는지 알아보자. 대략적인 흐름일 뿐 완벽히 일치하지 않을 수 있음.
  • 목표 설정 → 기획 회의 → 개발 → QA → 배포 → 출시
  • 순차적으로 일하는 워터폴 방식과, 같이 일을 진행하는 애자일 방식으로 일할 수 있음.
  • FE는 디자이너의 와이어프레임을 보면서 화면을 제작함 → 디자인 결과 적용 및 API 문서를 보면서 API 이용 → 테스트 코드 작성
  • 백엔드는 API 개발 및 데이터베이스 모델링을 함 → API 테스트 및 예외사항 확인 및 수정.
코드 관리 - 코딩 컨벤션 : 인덴트, 세미콜론 등으로 코드를 깔끔하게 다듬음. 테스트는 다른 컴퓨터에서 실행해보는 경우도 있음.
코드 관리 - 코딩 컨벤션 : 인덴트, 세미콜론 등으로 코드를 깔끔하게 다듬음. 테스트는 다른 컴퓨터에서 실행해보는 경우도 있음.
  • 소스코드 빌드(CI) : 개발자가 작성한 코드가 잘 합쳐지기 전에 빌드, 테스트를 자동화한 것.
  • 배포 : 실제 개발한 것을 실제 사용되는 컴퓨터(서버)에 올리는 행위.
  • CD(continuous Deployment) : 코드들이 운영환경에서 실행되기까지 자동화하는 것.
  • 배포 후 문제가 발생하면 문제가 생긴 프로젝트들을 롤백함.
데브옵스(DevOps)
데브옵스(DevOps)
 

더 나은 개발자로 성장하기

  • 현재 프로그래밍 메타는 객체 지향.
  • 협업을 위해 꼭 알아야 하는 개념 숙지하기.
  • 견고하고 재사용 가능한 코드 작성.
  • 개념 이해뿐만 아니라 직접 작성해보기.
  • 추천 도서 : 오브젝트 (조영호 저)
  • 테스트 코드 작성하기. 실패할 수 있는 코드를 테스트로 작성할 수 있어야 함.
  • 아키텍처에 대한 기본 이해하기. directory 위치에 대한 이해. 건강한 의존성을 가지게 하고, 프로젝트 구조를 쉽게 파악할 수 있게 해줌.