스프링 웹 MVC
·
BackEnd/스프링 MVC 1편
웹 서버, 웹 애플리케이션 서버 모든 것이 HTTP, HTTP 메시지에 모든 것을 전송할 수 있다. HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML (API) 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 웹 서버(Web Server) HTTP 기반으로 동작 정적 리소스 제공, 기타 부가기능 정적(파일) HTML, CSS, JS, 이미지, 영상 예) NGINX, APACHE 웹 애플리케이션 서버(WAS - Web Application Server) HTTP 기반으로 동작 웹 서버 기능 포함+ (정적 리소스 제공 가능) 프로그램 코드를 실행해서 애플리케이션 로직 수행 동적 HTML, HTTP API(JSON) 서블릿, JSP, 스프링 MVC..
합승 택시 요금(프로그래머스) JAVA
·
BackEnd/알고리즘 공부
https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제설명 무지와 어피치가 같이 택시를 타고 집에 간다. 무지의 집은 B고 어피치의 집은 A이다. S에서 시작해서 목적지 A와 B까지 도착할 때 최소 비용을 구하는 문제이다. 이 문제가 다른 문제랑 다른 점은 택시를 같이 타고 가다가 내릴 수 있다는 점이다. 위 문제에서 최소 비용의 예를 생각해 보자 4번에서 시작해서 5번까지는 둘이 택시를 같이 탄다. 그러면 34원 그리고 B, A까지 각각 택시를..
SQL 공부
·
BackEnd/MySQL 문제 풀기
https://school.programmers.co.kr/learn/courses/30/lessons/77487 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2021 Dev-Matching: 웹 백엔드 개발자의 헤비 유저가 소유한 장소라는 문제이다. 간단하게 말하자면 2번이상 장소를 예약한 사람을 찾는 내용이다. 하지만 여기서 예약한 내용의 모든 요소를 뽑아내야 한다. SELECT * from places where host_id in ( select host_ID from places group by HOST_ID having count(HOST_I..
숫자 변환하기(프로그래머스) JAVA
·
BackEnd/알고리즘 공부
https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 40이 될려면 10에 2를 2번 곱한다. 40이 될려면 10에 30을 더한다. 2가 5가될 방법이 없다. 문제에 대한 아이디어 및 구현 문제를 보자마자 느낀점은 최적의 상황만 선택해서 구해줘야 할 것 같았다. 그래서 그리디를 사용해볼까 였다. 하지만 생각해야할 조건이 너무 많아진다는 느낌을 받았다. 지금까지 문제를 풀면서 그리디로 풀면 좋을거 같은데 생각해야할 조건이 너무 많을 때는 DP를 사용..
Github Action으로 자동배포 문제점 해결하기
·
혼자하는 프로젝트/스프링 부트로 구현한 웹
전 글로 Github Action으로 자동배포를 성공했다. 하지만 문제점이 하나 존재할 때, 이 deploy.yml을 사용하면 지금 현재 모든 파일을 EC2에 올려버린다. 그러면 submodule로 만든 보안을 유지해야 하는 정보들 조차 EC2에 올라가 버린다. 이러면 안 되기 때문에 다른 방법을 찾아봤다. 목표 목표는 EC2에는 appspec.yml과 .jar파일, start.sh, stop.sh 4개만 올릴 것 이다. CodeDeploy의 행동 CodeDeploy는 Zip파일을 받는다. jar 파일은 받지 않는다. EC2에 올리기전 자동으로 zip파일을 압축 해제하고 appspec.yml을 실행한다. 이제 appspec.yml의 코드대로 코드가 수행된다. 흐름 이해 github reposiotry에 ..
Github Actios를 사용하여 자동배포하기
·
혼자하는 프로젝트/스프링 부트로 구현한 웹
CI & CD 소개 코드 버전 관리를 하는 VCS 시스템(Git, SVN 등)에 PUSH가 되면 자동으로 테스트와 빌드가 수행되어 안정적인 배포 파일을 만드는 과정을 CI(Continuous Integration - 지속적 통합)이라고 하며, 이 빌드 결과를 자동으로 운영 서버에 무중단 배포까지 진행되는 과정을 CD(Continuous Deployment - 지속적인 배포) 라고 한다. CI 도구들 1. Jenkins Jenkins는 정말 많이 사용한다. EC2에 Jenkins를 설치해야 한다. 그리고 과금이 있다. 그러므로 Pass 2. Travis CI 지금 내가 읽고 있는 책도 Travis CI로 CI/CD를 구현하셨다. Travis를 사용해도 되지만 구글링을 해본 결과 속도가 굉장히 느리다고 한다..