코드스테이츠_국비교육 158

[Pre-Project] Day_02_22.12.16

>Git : Github, Git-Flow 등 여러 사람과 프로젝트를 관리할 때 필요한 지식들을 공부 : Github(Issues, Milestone, Projects, Branches, IDE, gitignore, License 등) : 이 부분이 빨리 끝나야 프로젝트를 시작할 수 있을 것 같음. : 아 근데 너무 어렵고 어색함 >학습 자료, 줌 : 그나마 안심. 어제는 좀 충격이었고 그래서 신뢰를 다 잃었는데, 그래도 오늘은 상당히 괜찮다고 생각함. >생각 기록 -말을 할 때, 뭘 위해 말하는지 목적부터 정리해서 말하자 : 내가 생각나는대로 알려주고 싶은대로 말을 하니까 분명하게 전달이 안된다. : 나는 혼자 오래 생각해서 다 알지만, 듣는 사람은 처음 생각하게 되는 부분이다. -처음에 겪는 우여곡절..

[Pre-Project] Day_01_22.12.15

>Project-OT : OT 과정에는 많이 실망. 조금 답 없어 보임 : 공공적인 곳에서 선택하는 워딩이나 태도가 놀랄정도로 별로인 사람들이 있음. : OT는 말 그대로 안내 자료인데, 이를 숨기는 이유도 모르겠고 미리 학습하지 못하게 꽁꽁 숨겨놓는 이유도 모르겠음. : 특히, Main-Project가 이런식으로 흘러가는게 맞는지 모르겠음. 기존에 알지도 못하게 숨겨져있는 정보였고, 지금도 말로 후루룩 지나가면서 설명해서 정보가 제대로 노출이 안 됨. 필요하면 물어보라는 식임. 이 메인 프로젝트가 이렇게 진행될 줄 알았으면 사람들이 싫어하지 않았을까? 나만 그런가...여튼 지켜보자 >팀 빌딩 : 비전공자 팀 : 팀장됨 : 유난스럽지 않아서 좋음 : 내가 낯도 많이 가리고 뛰어난 실력으로 이끌 수 있는 ..

78~79_[솔로 프로젝트] 솔로 프로젝트_22.12.12~13

**개요 >서버의 종류 -웹 서버 -웹 애플리케이션 서버 -데이터베이스 서버 -파일 전송 서버 -메일 서버 -인쇄 서버 >운영 서버와 개발 서버 >CORS : 애플리케이션 간 출처(origin)이 다른 경우 HTTP 통신을 통한 리소스 접근이 제한됨. : 이를 제한하는 정책을 SOP(Same Origin Policy) 라고 함. : 다른 Origin 일 때, 선택적으로 접근 권한을 부여하는 정책을 CORS라고함. : SOP가 리소스 공유를 막지만 CORS로 설정하여 예외 조항을 두는 셈. >CORS 설정 -Spring Security 이용하기 -@CrossOrigin 설정하기 >CORS와 CSRF -CORS (Cross-Origin Resource Sharing) : 다른 출처에 대한 설정 -CSRF (..

77.04_[Cloud] Nginx_프록시 서버, 로드밸런서_22.12.09

>Nginx를 Reverse Proxy Server로 사용하기 : Spring Boot와 연결 : Nginx는 80 port, Spring Boot는 8080 port 사용 1. nginx 설치 (Stable version) 2. nginx 실행 (확인: 기본값 localhost:80 접속) 3. /conf/nginx.conf 수정 -proxy 경로 설정 : localhost:8080 -proxy_header 설정 4. nginx 재실행(nginx -s reload) 5. server 실행(localhost:8080; 서버 애플리케이션) 6. nginx 종료(nginx -s stop) //정확한 이유는 모르겠지만 nginx -s quit 명령어로 종료하는게 확실하게 종료가 된다. /* nginx 을 실행..

77.03_[Cloud] WAS, Web Application Server_22.12.09

>Tomcat : Apache 사의 오픈 소스 웹 애플리케이션 서버(WAS, Web Application Server) : 서블릿 컨테이너만 있고, Spring Boot의 기본 내장 서버(자바 서블릿 컨테이너에 대한 공식 구현체) : 독립적으로도 사용 가능하고, 다른 웹 서버와 연동도 가능 : `spring-boot-starter-web`의 모듈에 `spring-boot-starter-tomcat` 모듈이 포함되어있음 //톰캣이 아닌 WAS를 통해 프로젝트를 실행할 수도 있음. >Jetty : eclipse 재단의 HTTP 서버이자 자바 서블릿 컨테이너(Tomcat 대신 사용가능) : 오픈 소스이며, 애플리케이션에 내장 가능 : 적은 메모리를 사용하여 가볍고 빠르기 때문에 소형 장비, 소규모 프로젝트에 ..

77.02_[Cloud] 서버 수평 확장_로드 밸런서, 오토스케일링_22.12.09

>서버 과부하를 방지하는 수평 확장 종류 1. 스케일업 : 서버의 물리적인 부품을 기존보다 고사양으로 바꾸는 작업 : 고성능으로 서버 과부하를 방지 : 하지만 최고 사양으로 맞춘 서버임에도 이를 뛰어넘는 수의 요청이 들어온다면 과부하걸림 2. 스케일아웃 : 서버의 갯수를 여러 개로 늘리는 작업 : 여러 서버로 요청을 나누어 받아 서버 과부하를 방지 >로드 밸런서 : 여러 서버로 나누어 전달할 요청들을 교통 정리하는 기술(혹은 프로그램) >로드 밸런서 구분 기준 : 어떤 계층에서 무엇을 바탕으로 교통 정리를 하는지에 따라 종류가 나뉨 >로드 밸런서 종류 -L2 : 데이터 전송 계층에서 Mac 주소를 바탕으로 로드 밸런싱 -L3 : 네트워크 계층에서 IP 주소를 바탕으로 로드 밸런싱 -L4 : 전송 계층에서..

77.01_[Cloud] 프록시 서버_22.12.09

>프록시 서버, Proxy Server : `Proxy`는 `대리인`이라는 의미 : 클라이언트가 서버에 바로 접근하지 않고 중간에 있는 대리인을 통해 우회하도록 만드는데, 여기서 대리인 역할을 프록시 서버가 함. >프록시 서버를 통해 우회하는 이유 : 캐시를 통해 더 빠른 이용 : 보안 : 분산 처리 >프록시 종류를 나누는 기준 : 요청, 응답 전달 과정에서 클라이언트와 서버 중 어디에 가까이 위치하는지에 따라 종류가 나누어짐. : 클라이언트에 가까우면 클라이언트 서버를 대신해주고, 백엔드 서버에 가까우면 백엔드 서버를 대신해주는 느낌이 있음. >프록시 서버의 종류(대표적인) -Forward Proxy : 클라이언트에 가까이 위치함. : 클라이언트는 포워드 프록시 서버를 통해 인터넷에 접속하기 때문에 외..

76.01_[Cloud] 배포 흐름도_22.12.08

>수동 배포 1. 완성된 앱을 github에 올리기 2. EC2 인스턴스에서 github repo를 클론 3. 해당 앱의 빌드 결과물을 실행 4. S3 버킷을 통해 웹 사이트 호스팅 >자동 배포-파이프라인 1. github repo에 작업물을 push 2. 특정 브랜치에서 push를 감지 3. buildspec.yml 을 통해 빌드 결과물을 생성하고 S3에 저장 4. S3에 저장된 빌드 결과물을 가져와서 appspec.yml 파일을 읽고 EC2 인스턴스에 배포하고 실행 명령 >자동 배포-Github Actions 1. Github push로 github actions 실행 2. Github actions 작업을 작성해놓은 .yml 파일을 통해 코드 빌드, S3로 전송, 배포 명령 실행 3. appspec..

75.01_[Cloud] 배포 자동화_22.12.07

>배포 자동화 : 한 번의 클릭 혹은 한 번의 명령어 입력으로 전체 배포 과정을 자동으로 진행하는 것을 뜻함. //배포 과정 흐름에 대한 공부 >배포 자동화의 이점 -시간 절약 -휴먼 에러 방지 >배포 자동화 관련 용어 -파이프라인(Pipeline) : 소스 코드 관리부터 서비스 배포까지 일련의 과정 전체를 의미함. : 배포 자동화는 곧 파이프라인의 재실행을 의미. -스테이지(Stages) : 파이프라인을 단계적으로 쪼갠 단위 : 배포 자동화가 이루어지기 위해 스테이지가 순차적으로 이루어짐. : 대표적인 스테이지의 예시로 (1)Source stage (2)Build stage (3)Deploy stage가 있음. : 스테이지는 필요에 따라 더 세분화되거나 간소화될 수 있음. /* - 파이프라인 예시 (1..