0215

정보

[정보 공유] 신입 백엔드 개발자 업무역량에 대한 최소 기준과 대비책

영상 출처 : https://youtu.be/vixYMoSJZfE?si=DakslvFrKHWdt30K

1. API 개발 및 설계 능력

- 중요한 것을 넘어서 가장 기본이 되는 부분.

- 게시판의 CRUD에서 말하는 API

1) REST API 규칙 지키기

: 리소스 중심으로 http 메서드를 잘 활용한 api 설계

2) 간단한 프론트엔드(html)

: CSS X, HTML만

3) 인증 / 인가

: 세션/쿠키, JWT, 게시글 권한 처리

4) 에러 처리

: 적절한 HTTP 상태 코드 (프론트의 request의 오류, 핸들링의 오류 등)

5) API 문서화

: OpenAPI, Swagger (오픈 API 규격에 맞춰진 스웨거)

2. 데이터 베이스

1) 벡엔드의 3요소

: Web, WAS, DB

2) 관계형 데이터베이스

: NoSQL X, MySQL, PostgreSQL (차이점이나 장단점 정도 공부하고 하나 정해서 사용)

3) ERD

: 일대일, 일대다, 조인, 서브쿼리

4) SQL

: ORM만 사용하지말 것, ORM이 생성하는 쿼리를 볼 것, 조인과 서브쿼리를 사용하여 쿼리 사용. (통계 쿼리 작성, 그 결과 예상)

5) 인덱스

: 아무데나 인덱스를 거는 것이 아닌, 자주 사용하고 꼭 필요한 곳, Where 조건 보면서 필요한 곳에

3. 클라우드 배포

1) 배포해보기

: EC2, RDS 사용하기 (RDS까지 사용하는 사람은 적은 편)

2) EC2 IP주소로 요청하기

: Localhost X, 실제 외부에서 요청 가능.

4. 전반적인 웹의 흐름 (오늘의 메인)

웹서버 : nginx, apache

WAS : tomcat, unicorn, node.js,

DB : mysql, postgresSQL

1) 사용자가 브라우저에서 로그인페이지에서 아이디랑 패스워드를 입력해서 로그인 요청을 보낸다.

2) 브라우저는 이 정보를 담아서 도메인에다가 /login이라는 주소로 HTTP POST 요청을 보낸다.

3) 도메인을 통해 가장 먼저 웹서버인 nginx에 도달한다.

- 도메인이 DNS를 통해 IP 주소로 바뀌어 전달한다. (생략)

- 웹에서 처리하기엔 복잡하기에, nginx config 파일에 로그인은 이제 WAS로 보내라는 설정들이 있다.

4) nginx는 해당 요청을 애플리케이션 서버(WAS)로 넘긴다.

5) WAS에서 HTTP을 받고, 해당 WAS에서 이해할 수 있는 형태로 변환해서 애플리케이션에게 전달한다.

- 대부분 java Spring, node.js, django, fastAPI가 여기서 도대체 어느 부분에서 동작해야 하는지 알아야 한다. (생략)

6) 애플리케이션에서 아이디, 패스워드로 DB에 조회한다.

7) 성공 여부를 역순으로 유저한테 전달한다.

최소 기준이 안 되는 경우

1. REST API를 잘 모르겠다.

- 게시글 CRUD이나 게시글 로그인/로그아웃을 만들어본다.

- 처음에는 기간을 고려하지 말자.

- 이후에는 2일(16시간) 내로 개발하는 연습

- DB는 부조건 MySQL 또는 postgreSQL

2. 데이터베이스를 잘 모르겠다.

- ORM이 실행하는 쿼리 보기

- 단일 쿼리 말고, 최소 조인 한 번 하는 정도로 (일대일, 일대다)

- 전광철 OCP 유튜브 시청하기 (유튜브에 있는 무료 강의 시청)

3. 클라우드 배포 잘 모르겠다.

- 첫번째에서 개발한 게시판을 배포

- 무조건 AWS EC2, RDS 사용

- 인그레스 설정 (외부에서 EC2 IP로 올 수 있도록 설정, aws에서의 인바운드 설정)

- 익숙해졌다면 VPC 설정까지 (네트워크 설정까지. ec2랑 Rds를 private subnet으로 설정하고 NAT 게이트웨이랑 인터넷 게이트웨이러 EC2만 외부에서 접근할 수 있도록.)

- 실습 후 인스턴스 삭제

4. 전반적인 웹의 흐름 잘 모르겠다.

- 인프런 널널한 개발자 네트워크 핵심이론 기초 강의

- 미리 보기 공개된 것만 봐도 매우 좋음

- 36강은 필수.