솔로 프로젝트에 앞서, 서버와 클라이언트, 배포 등에 관한 내용을 학습하였다.
❯ 서버와 클라이언트
- 서버: 네트워크에서 다른 컴퓨터나 소프트웨어와 같은 클라이언트에게 서비스를 제공하는 컴퓨터를 말한다.
- 클라이언트: 서비스를 제공받는 대상을 말한다.(서버에 필요한 것을 요청하고 응답을 받음)
서버의 종류
- 웹서버: Apache, IIS, NginX
- 웹 애플리케이션 서버: Tomcat, WebLogic, WebSphere
- 데이터베이스 서버: Oracle, MS-SQL, MySQL
- 파일전송 서버: VS-FTPD, IIS
- 메일 서버: Send-mail, Microsoft Exchange Server
- 인쇄 서버
=> 종류에 맞는 개발 서버를 사용하여 트래픽을 분산하고, 장애에 대응할 수 있다.
서버 구성과 서버 환경 설정
- 서버 구성: 서버 컴퓨터의 종류나 대수, 네트워크 정책이나 수용 인원 예측 등을 구성하는 것을 말한다.
- 서버 환경 설정: 구성된 서버 컴퓨터가 적절한 서비스를 제공할 수 있도록 환경을 구성해주는 것을 말한다.
Apache, NginX, Tomcat 등 적절한 프로그램을 통해 환경을 구성해줄 수 있다.
❯ CORS(Cross Origin REsource Sharing)
애플리케이션 간의 Origin(출처)이 다르면 스크립트 기반의 HTTP 통신을 통한 리소스 접근이 제한되는 정책 SOP(Same Origin Policy)가 적용된다.
이 때 다른 Origin간의 접근이 필요할 경우 CORS를 통해 사전 설정을 해줌으로써 선택적으로 접근 권한을 부여해줄 수 있다.
CORS 정책 동작 방식
- Preflight Request: 요청을 보내기 전에 OPTION 메서드로 사전 요청을 보내서 해당 출처 리소스에 접근 권한이 있는지 확인하는 방법으로, 권한이 있다면 응답 Header에 Access-Control-Allow-Origin으로 요청 출처가 돌아오면 이후에 실제 요청을 보낸다.
- Simple Request: 특정 조건이 만족되면 Preflight Request를 생략하고 요청을 보낸다.
- Credential Request: 요청 헤더에 인증 정보를 담아서 보내는 요청이다. 서버측 / 클라이언트측 모두 CORS 설정이 필요하다.
CORS 정책 설정 방법
크게 두가지로 구분할 수 있다. Global 설정 클래스를 이용해 특정 도메인에 모두 적용할수 있으며, 애너테이션을 사용해 컨트롤러 단에 적용할 수도 있다. (@CrossOrigin)
❯ Ngrok
네트워크 설정을 하지 않아도 방화벽을 넘어 외부에서 로컬환경에 접근할 수 있도록 해주는 터널링 프로그램을 말한다.
특정 보트를 실행하면 임시 도메인이 할당되며 해당 도메인을 통해 내 로컬에 접근이 가능하다.
ngrok http {port} 명령어를 통해 원하는 포트를 연결할 수 있다.
오늘은 간단한 ToDo App을 혼자 만들어보는 실습을 진행했다.
엔티티가 하나이고 CRUD만 구현하면 되는 간단한 내용이라 비교적 쉽게 끝낼 수 있었다.
실습을 하면서 느낀것은 특정 기능을 사용하기 위해 꼭 필요한 애너테이션이나 의존성, 코드 흐름 등에 대한 이해가 아직은 많이 부족하다는 것이었다. 내일은 마침 공휴일이라 본격적인 프로젝트에 들어가기 전에 이전에 만들었던 코드를 다시 한번 처음부터 만들어보는 시간을 가질 계획이다.
'부트캠프 개발일기 > Pre-Project' 카테고리의 다른 글
84일차: Pre-Project Day 4 (사용자 요구사항 정의서, ERD) (0) | 2023.06.14 |
---|---|
83일차: Pre-Project Day 3 (프로젝트 관리) (0) | 2023.06.13 |
82일차: Pre-Project Day 2 (GitHub 다루기) (0) | 2023.06.12 |
81일차: Pre-Project Day 1 (팀빌딩) (0) | 2023.06.09 |
79일차: Solo Project(키오스크 구현) (0) | 2023.06.07 |