(인프런) 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 공부하고 리뷰한 글입니다. 데이터: 회원ID, 이름 기능: 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현 (ex. 회원은 중복 가입안됨) 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 아직 데이터 저장소가 선정되지 않았으므로 인터페이스로 구현 클래스를 변경할 수 있도록 설계!! 초기 개발 단계에서는 구현체(인터페이스를 구현한 클래스)로 가벼운 메모리 기반의 데이터 저장소를 사용
(인프런) 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 공부하고 리뷰한 글입니다. 정적 콘텐츠: server에서 하는 일 없이 파일 자체를 웹 브라우저에 전달 MVC와 템플릿 엔진: server에서 html을 변형 후 전달 API: JSON과 같은 데이터 구조 포멧으로 client에게 전달, server끼리 통신할 때 사용 1. 정적 컨텐츠(Static Content) 스프링 부트 정적 컨텐츠 기능: 원하는 파일을 resouces/static 아래에 넣으면 정적 컨텐츠로 인식 (실행) localhost:8080/hello-static.html 1. hello-static Controller가 있는지 검사 -> 없음 2. Controller가 없으면 static에서..
(인프런) 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 공부하고 리뷰한 글입니다. build: jar 파일을 만드는 것 배포: jar파일을 서버에 전달하고 java -jar로 실행하는 것 1. gradlew build 빌드를 하면 빌드 폴더가 생성됨 2. cd build/libs jar 파일 위치로 이동 3. java -jar 파일명.jar jar파일 실행하기 1. ./gradlew build 빌드를 하면 빌드 폴더가 생성됨 2. cd build/libs jar 파일 위치로 이동 3. java -jar 파일명.jar jar파일 실행하기 Q. 실행이 잘 안된다면? 프로젝트 위치(~/hello-spring)에서 ./gradlew clean build 수행 - buil..
(인프런) 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 공부하고 리뷰한 글입니다. 1. 자바 11 및 Intellij 설치 1. 자바 11 설치 자바 11 다운로드 운영체제에 맞게 다운로드 하고 자세한 방법은 아래를 참고하자. 1) Windows 다운로드 [참고] https://crazykim2.tistory.com/478#text1 [JAVA] Window10의 JAVA SE 11 설치하기 안녕하세요 포스팅이 늦은 것 같지만 이번에 윈도우를 포맷하면서 자바를 다시 설치하게 되었습니다 자바 개발을 처음하거나 자바를 설치한지 오래되어서 기억이 안 나는 분들을 위해 자바 설 crazykim2.tistory.com 2) Mac 다운로드 [참고] https://anima..
[백준] 11049번 - 행렬 곱셈 순서 (한줄평) 이전에 풀었던 문제와 풀이 방식이 비슷해서 풀 수 있었지만 다음에 다시 풀면 못 풀 것 같기도 한 문제.. 복습이 꼭 필요하다! 유사 문제: 11066 https://hseungyeon.tistory.com/313 [다이나믹 프로그래밍] ★★ 11066번 - 파일 합치기 [백준] 11066번 - 파일 합치기 (한줄평) 풀릴듯 하면서 풀리지 않아서 풀이를 보니 생각보다 더 복잡한 문제였다. 풀이를 봐도 쉽게 이해가 가지 않았기때문에 꼭 복습이 필요하다! 풀이 시간: 3 hseungyeon.tistory.com 풀이 시간: 60분 이내 1) 문제 해결 아이디어 n개의 행렬을 곱하는데 필요한 곱셈 연산의 최솟값을 구하는 문제다. 이 문제의 핵심은 대각선방향으..
[백준] 11066번 - 파일 합치기 (한줄평) 풀릴듯 하면서 풀리지 않아서 풀이를 보니 생각보다 더 복잡한 문제였다. 풀이를 봐도 쉽게 이해가 가지 않았기때문에 꼭 복습이 필요하다! 풀이 시간: 3시간 이내 1) 문제 해결 아이디어 소설을 구성하는 장의 수(k)와 k개의 파일의 크기(f)가 주어졌을 때 모든 장을 합치는데 필요한 최소 비용을 구하는 문제다. 두 개의 파일을 합쳐서 하나의 임시파일을 만들고, 이 임시파일이나 원래의 파일을 계속 두 개씩 합쳐서 소설의 여러 장들이 연속이 되도록 파일을 합쳐나가고, 최종적으로는 하나의 파일로 합친다. 두 개의 파일을 합칠 때 필요한 비용(시간 등)이 두 파일 크기의 합이라고 가정할 때, 최종적인 한 개의 파일을 완성하는데 필요한 비용의 총 합을 계산해야한다...
[백준] 9252번 - LCS 2 (한줄평) 이전에 풀었던 LCS를 잘 이해하고 있다면 쉽게 풀 수 있었던 문제! 메모리, 시간 복잡도를 개선할 수 있는 방향으로 코드를 짜기 위해 고민해야하므로 나중에 한 번 쯤 다시 풀어보는 것이 좋을 것 같다 유사 문제: 9251 https://hseungyeon.tistory.com/311 [다이나믹 프로그래밍] ★★ 9251번 - LCS [백준] 9251번 - LCS (한줄평) 접근 방식은 맞았지만 점화식을 세우지 못해 어려웠던 문제.. 1차원 리스트로 접근하는 방식은 아예 생각하지도 못했고 이해하기도 어렵다.. 무조건 복습해야할듯하 hseungyeon.tistory.com 이 문제는 LCS 길이와 LCS를 구하는 문제로 DP테이블에 LCS를 바로 기록하는 방식과..
[백준] 9251번 - LCS (한줄평) 접근 방식은 맞았지만 점화식을 세우지 못해 어려웠던 문제.. 1차원 리스트로 접근하는 방식은 아예 생각하지도 못했고 이해하기도 어렵다.. 무조건 복습해야할듯하다 두 문자열의 LCS 길이를 구하는 문제다. 이 문제는 각 문자열의 길이를 하나씩 늘려가며 두 문자열의 LCS를 반복적으로 구하는 것이 핵심이다!! dp 테이블을 2차원 혹은 1차원 리스트로 풀이하는 방식 2가지가 있는데 1차원 리스트를 이용하여 구현항 방식이 조금 더 효율적인 방식이다. 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴것을 찾는 문제 (풀이1) 2차원 리스트 이용 풀이 시간: 50분 이내 1) 문제 해결 아이디어 dp 테이블을 2차원 리스트로 생성하여 푼 방식이다. 1. ..