[UMC Ewha 5th] Server - SpringBoot 8

[UMC Server] Chapter 8.1 API 응답 통일

8.0 8주차 워크북 학습 목표 이번 주차는 프로젝트를 위한 여러가지 설정을 적용하였다. 먼저 API 응답을 통일하고, 서버나 클라이언트에서 발생한 오류를 처리하는 방법을 알아보자. 1) Spring Boot에서 API 응답 통일 적용하기 2) Spring Boot에서 에러 핸들러 구축하기 8.1 API 응답 통일 API는 보통 함수를 호출하듯, 하나의 변수에 응답을 받게 되는데, 응답의 형태가 모두 다르게 되면, 프론트 개발자가 이를 이해하기 어려워진다. 예를 들어 API 응답이 성공인 경우와 실패인 경우의 양식이 다르다면, 각각의 응답을 처리하고 파악하기 힘들 것이다. API 응답 형식 API 응답은 보통 아래의 형태를 따른다. { isSuccess : Boolean code : String mess..

[UMC Server] Chapter 7. JPA를 통한 엔티티 설계, 매핑 & 프로젝트 파일 구조 이해

7.0 7주차 워크북 학습 목표 스프링 프로젝트 진행 시 인프라 구축이 완료되면 (12주차에서 다룸), 앞서 설계한 ERD를 통해 Spring Data JPA로 Entity를 설계해야 한다. 이번 주차에서는 앞서 설계한 미션 ERD를 따라 JPA Entity 매핑을 해보자. 1) Spring data JPA를 이용해서 Entity 설계, 매핑하기 사용할 음식점 미션 프로젝트 ERD는 아래와 같다. 7.1 Springboot 디렉토리 컨벤션 프로젝트 마다 디렉토리 컨벤션은 달라질 수 있지만, 해당 프로젝트에서는 아래와 같이 package 를 만들어 주었다. (github action을 위한 디렉토리는 생성하지 않음) 각각의 패키지에 대해 하나씩 자세하게 알아보자. domain 패키지 - JPA에서 사용하기..

[UMC Server] Chapter 6. API URL의 설계 & 프로젝트 세팅

6.0 6주차 워크북 학습 목표 앞서 4주차에서 학습한 것과 같이 ERD 설계를 마치면, 큰 틀에서 API 설계를 시작해야 한다. ( API 세부사항을 정하기는 어렵겠지만, 큰 틀은 변하지 않는다 ) 이번 주차에서는 API 설계 방법을 익히고, 스프링 프로젝트 초기 세팅 방법에 대해 알아보자. 1) RESTful한 API 설계를 익히기 2) Spring boot 프로젝트 세팅하기 6.1 API 란? 프로젝트 개발 과정에서 API 라는 단어를 자주 사용하기도 하고, 대략적으로 클라이언트와 서버 간의 통신에 필요한 것이라는 것은 알고 있지만, API에 대한 정확한 의미를 이해가 부족하다는 생각이 들었다. 먼저 API의 의미에 대해 정확하게 알아보자. API ( Application Programming In..

[UMC Server] Chapter 5. 실전 SQL - 어떤 Query를 작성해야 할까?

5.0 5주차 워크북 학습 목표 5주차는 각각의 요구사항에 따라 어떻게 SQL 쿼리를 짜는 것이 좋은지 학습해보았다. 1) 4주차 예시를 기반으로 요구사항에 대한 SQL 쿼리 짜기 2) paging을 고려하여 쿼리 작성하기 MySQL을 기준으로 쿼리를 작성하였고, 4주차에서 실습한 ERD를 바탕으로 SQL 쿼리를 짜는 실습을 진행하였다. 아래는 5주차 워크북을 수행하기 위해 알아야 하는 사전 개념을 간단하게 정리해보았다. [ 참고 ] 테이블 join의 개념 - 서로 다른 각각의 테이블안에 있는 데이터를 동시에 보여주어야 할 때 사용 - 조인을 위해서 두 테이블은 기본키, 외래키 관계 (일대다 관계) 로 맺어져 있어야 함 1) Inner Join : 두 테이블에 해당 데이터가 모두 존재하는 경우 가능으로 ..

[UMC Server] Chapter 4. Database 설계 & AWS RDS 설정

4.0 4주차 워크북 학습 목표 4주차는 백엔드 서버의 핵심인 데이터베이스 설계 방법을 알아보고, 요구 사항에 따라 어떻게 설계하는 것이 좋은 설계 방법인지 학습해보자. 데이터베이스를 잘 설계하는 방법 알아보기! 1) 유저 테이블 설계 방법 학습하기 2) N:M (다대다) 관계 설정 방법 학습하기 3) 알림을 보내야 하는 경우 설계 방법 학습하기 아래는 4주차 워크북을 수행하기 위해 알아야 하는 사전 개념을 간단하게 정리해보았다. 데이터베이스 수업에서 다루었던 내용이지만, 까먹은 부분이 많아 간단하게 다시 복습해보았다. 해당 내용에 대해서는 차후 블로그에 다시 자세하게 정리해 보아야 겠다! [ 사전 개념 (1) - 관계형 데이터 베이스 ] - 데이터를 table(표) 의 형태로 표시하는 방법 - 이 ta..

[UMC Server] Chapter 3. Web Server & Web application Server(WAS), Reverse Proxy

3.0 3주차 워크북 학습 목표   과거 인터넷 사용자가 지금처럼 많지 않았던 경우, 웸사이트 A의 사용자가 10명이었다면 단순히 10개의 html페이지를 만들었다.   하지만 사용자가 기하급수적으로 늘어나면서 모든 웹페이지를 개별적으로 만드는 것이 불가능해졌다.   따라서 미리 정해진 콘텐츠(정적)를 준비한 후 요청이 올 때마다 적절한 콘텐츠를 만들어주는(동적인) 새로운 방식이 도입되었다.   이번 장에서는 정적 콘텐츠 응답과 동적 콘텐츠 응답이 어떻게 다른지 살펴보자.    1) Web Server와 Web application Server의 차이를 이해한다.2) Reverse Proxy를 이해하고 적용한다.     앞선 2추자 EC2 NGINX 설치 내용에서 실습이 이어진다.     https://..

[UMC Server] Chapter 2. AWS(VPC & Internet Gateway & EC2)

2.0 2주차 워크북 학습 목표 서버의 인프라 구축을 위해 AWS에 대한 학습을 진행해보자. 1) AWS의 VPC를 이해한다. 2) 서버가 어떻게 구축되는지 이해한다. 2주차는 AWS VPC에 대한 이론을 다룬 후, EC2 구축에 대한 내용으로 이어진다. 2.1 AWS에서 리전과 가용영역 먼저 리전과 가용영역의 의미에 대해 짚고 넘어가보자. 리전 - AWS는 수 많은 서버 컴퓨터 자원을 대여해줌 (물리적으로 존재) - 수 많은 컴퓨팅 서비스를 위해 대규모 컴퓨터 서버를 모아놓아야 함 - 한 곳에 컴퓨터를 몰아두면 자연재해시 문제발생과 서비스 지연 문제가 발생 - 따라서 서비스를 위한 자원들을 여러 곳에 분산해서 배치 가용영역 - 리전을 다시 한 번 더 분산하여 배치 2.2 AWS와 VPC AWS의 시작은..

[UMC Server] Chapter 1. 서버란 무엇인가(소켓&멀티 프로세스) (1)

1.0 1주차 워크북 학습 목표 서버가 하는 일이 정확히 무엇이고, 어떻게 클라이언트와 서버가 데이터를 주고 받을 수 있는지에 대해 정확하게 이해하기! 1) 서버의 정의와 역할을 이해한다. 2) 서버가 어떻게 구축되는지 이해한다. 아래는 1주차 워크북을 수행하기 위해 알아야 하는 사전 개념을 간단하게 정리해보았다. OS / 네트워크 수업에서 다루었던 내용이지만, 까먹은 부분도 많고, 해당 개념에 대해 깊이 있게 알지 못하는 것 같아서 나중에 블로그에 자세히 정리하며 복습해야 할 것 같다. [ 사전 개념 (1) - 시스템 콜 ] - 응용 프로그램의 경우 유저 모드에서는 수행되지 못하는, 반드시 커널의 도움을 받아야 하는 작업이 있음 - 응용 프로그램이 특권 명령 (디스크 파일 접근, 화면 결과 출력 등) ..