1. 데이터베이스 DDL 저장 일단 데이터베이스 구조를 짰던 DDL 쿼리는 Spring에 sql 폴더>ddl.sql 파일을 만들어 저장한다. 2. 데이터베이스 관련 라이브러리 추가 (build.gradle) build.gradle의 dependencies 부분에 'spring-boot-starter-jdbc'와 'com.h2database:h2' 2가지를 추가한다. 자바는 기본적으로 JDBC와 붙으려면 JDBC driver가 꼭 있어야 한다. 그것이 'spring-boot-starter-jdbc' 드라이버이다. JDBC driver와 자바가 붙을 때 JDBC 클라이언트가 필요하다. 그것이 'com.h2database:h2' 클라이언트이다. dependencies { implementation 'org.s..
1. 설치하기 맥이라면 "All platforms" 버전으로 설치한다. 설치 후 압축을 푼다. 2. h2 폴더 접근 다운 다운로드 폴더에 h2를 다운받았고, h2 -> bin으로 접근했다. cd Downloads/h2/bin 3. (Only 맥) 접근 권한 해제 맥일 경우 h2 접근 권한을 해제해야 한다. chmod 755 h2.sh 4. h2.sh 파일을 실행한다. ./h2.sh 파일 실행 시 로딩 화면이 지속되거나 찾을 수 없는 페이지라고 뜬다면, :8082 이전 주소를 localhost라고 바꾼다. => localhost:8082/?key ~~ test.mv.db가 있으면 접근이 가능하다. 난 만들어 준 적이 없는데 그냥 들어가진다...(?) 그 후 jdbc:h2:~/test로 첫 방문에는 이 JD..
스프링 빈을 등록하는 방법은 2가지가 있다. 1. 컴포넌트 스캔과 자동 의존관계 설정 2. 자바 코드로 직접 스프링 빈 등록하기 1. 컴포넌트 스캔과 자동 의존관계 설정 흔히 우리가 자주보는 어노테이션 방식이 1번 방식에 속한다. 1) @Autowired helloController 객체를 생성할 때 memberService를 넣어주기 위해 @Autowired를 이용한다고 가정하자. 아래는 생성자 주입의 예시이다. @Controlloer public class HelloController{ private final MemberService memberService; @Autowired public HelloController(MemberService memberservice){ this.memberser..
하노이탑은 알고리즘 문제로 너무 유명하지만, 난 이번에 처음 풀어봤다. 단순 구현문제인 줄 알았는데, 재귀 문제로 유명한 것이었다. https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 1. 이동 갯수 공식 하노이탑은 이동할 때마다 신경써줘야 하는 것이 있다. 바로 쌓아 놓은 원판은 항상 위의 것이 아래 것보다 작아야 한다는 공식이다. 이걸 고려하여 이동 갯수를 1부터 세워주면 일정한 숫자로 증가하는 것을 확인할 수 있다. 원판 1개 (..
1. 3가지 종류 1. 정적 컨텐츠 서버에서 하는 것 없이 파일을 웹 브라우저로 그대로 내려준다. 2. MVC와 템플릿 엔진 jsp, php는 템플릿 엔진이다. 서버에서 프로그래밍해서 html을 동적으로 바꿔서 내리는 방식을 템플릿 엔진이라고 한다. 위 동작을 실행하기 위해 model, controller, view를 이용하는 것이 MVC 방식이다. 3. API json이라는 데이터 포맷으로 클라이언트한테 데이터를 전달한다. json은 java script object notation의 약자이다. 직역하면 자바스크립트 객체 표기법으로 데이터를 쉽게 교환하고 저장하기 위한 텍스트 기반의 데이터 교환 표준이다. 2. 동작 방식의 차이 1. 정적 컨텐츠 2. MVC와 템플릿 엔진 view : 화면을 그리는 일..
1. build 위치로 이동 https://start.spring.io/ 위 경로에서 프로젝트를 생성하고, sts나 인텔리제이를 통해 수정했다. 프로젝트 위치는 Download에 두었다. cd Download/hello-spring 2. 빌드한다. ./gradlew build 여기서 빌드란? 소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정과 그 결과를 말한다. 예를 들어 자바 프로젝트를 진행한다면 개발자가 작성한 A.java와 여러가지 정적 파일 등에 해당하는 resource가 존재한다. 빌드를 한다면 1) 소스코드를 컴파일해서 .class로 변환하고 2) resource를 .class에서 참조할 수 있는 적절한 위치로 옮기고 3)META-INF와 MANIFEST.NF들을 하나..
맥북에서 aws SSH 연결은 터미널로 간단하게 할 수 있다. 그런데 자꾸 이런 에러가 뜨면서 연결이 거부된다 ㅠㅠ 해결책은 아래 블로그를 보면서 해결했다 : ) https://nyol.tistory.com/127 [AWS] MAC terminal로 ssh키 접속 [Permission Error] "엘리스 AI 트랙 2기" 과정 중, "Docker EC2 띄우기" 과정에서 MAC terminal로 ssh키 접속 강의자료가 없어 해당 강의 내용을 바탕으로 추후 참고하기 위해 정리하였습니다. AWS AWS는 아마존에서 만든 클라 nyol.tistory.com 1. 맥북 터미널로 AWS의 SSH 연결하기 맥북에서는 터미널 > 셸 > 새로운 원격 연결 경로를 통해 위 UI를 통해 쉽게 연결할 수 있다. 하지만 ..
1. 서버란? 서버 : 클라이언트 요청에 응답 클라이언트 서버 백엔드 DB와의 관계이다. 2. 네트워크 지식 인터넷 세계에서 주소를 표현하는 방식은 2가지이다. IP : 3.36.43.123 도메인 : www.naver.com protocol HTTP, HTTPS, SSH, SFTP, FTP, MYSQL등의 종류가 있다. 이들은 자주 쓰는 port가 정해져있다. 즉, 특정 port로 들어가면 소통 방식 protocol이 정해져있다는 의미다. 이는 반드시 지켜야하는 것은 아니지만, 관례이다. 3. AWS 서버구축 AWS에서 컴퓨터를 1대 빌려 서버를 구축해보자. EC2라는 컴퓨팅 서비스를 사용할 것이다. 1) 메뉴 중 EC2를 선택한다. 2) 지역은 서울로 선택한다. 3) 메뉴에서 인스턴스 선택 후 우측 ..