국비지원교육 'K-디지털 기초역량훈련'으로 스프링부트 자바 클론 코딩 프로젝트 강의를 시작하게 되었습니다.
사실 이 강의는 약 2주 전부터 들었지만 잘못하다가 파일을 모두 날렸습니다.
어차피 복습해야 했는데, 좋은 핑계거리가 생겼다고 생각하며 눈물을 훔칩니다.
플랫폼은 아이티윌
, 강사는 최주호
님 입니다.
기타 프로그램이나 플러그인 등의 설치는 건너뛰고
STS4
에서 강의 코드의 설치와 함께 프로젝트 워크스페이스 설정하는 것으로부터 글을 시작합니다.
먼저 강의 코드는 여기서 받으시면 됩니다. 👉 스프링부트 SNS 포토그램 프로젝트
위 화면에서 <> Code
버튼을 눌러 'HTTPS' 링크를 복사합니다.
STS4로 돌아와 최상위 메뉴에서 File - Import
에서 'Git'을 검색한 뒤
'Project from Git (with smart import)'를 클릭하고 'next', 그리고 'Clone URI'를 더블클릭하면
자동으로 복사한 링크가 들어갑니다.
이후 다운로드 경로만 지정해주고 'finish'를 누르면 코드 다운로드는 끝입니다.
이외에도 깃 레파지토리에서 직접 압축파일을 다운 받을 수도 있고
깃 클론을 이용할 수도 있습니다.
'STS4'나 'Eclipse'나 똑같이 생겼습니다.
다만 다운받은 파일을 직접 파인더에서 찾아보면, 강의 내용과는 폴더 속 내용들이 다른 것을 알 수 있습니다.
다운 받을 때 뭔가 잘못됐나 싶어 이리저리 재시도 해보았지만 그대로입니다.
파일이 숨겨져서 안보이나 했는데, 숨겨진 파일 보기를 해도 다릅니다. 당황스럽지만 일단 진행합니다.
강의에서는 mariadb
를 사용합니다. 물론 우리의 맥OS에서는 이것을 터미널에서 실행해야 합니다.
기본적인 설치, 세팅은 구글링하면 어렵지 않게 할 수 있습니다만,
바로바로 보기 좋은 UI가 없어 실망했다가 Sequel Pro
라는 프로그램을 알게 되었습니다.
'mariadb'를 볼 수 있습니다.
'mariadb'를 실행하는 코드는 아래와 같습니다.
$ brew services start mariadb
DB를 실행중인 상태로 다시 STS4로 돌아와 프로젝트 우클릭 - Run As - Spring Boot App
으로 앱을 실행합니다.
앱이 아래와 같이 실행되지 않습니다. 파이썬과 달리 오류메시지가 뭔가 답답- 합니다.
내용인즉슨.. 눈에 안들어옵니다. 그냥 맨 아래 Action:을 읽어 보겠습니다.
DB를 실행은 했는데, 프로그램과 DB가 연동이 되지 않은 것 같습니다.
src/main/java/com.cos.photogramstart/PhotogramStartApplication.java
내용에
@SpringBootApplication 주석에 아래와 같이 추가하여 저장합니다. 참고 블로그
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
정상적으로 앱이 실행됩니다. 맥 사용자로써 강의 환경이 대부분 윈도우라서 외롭습니다.
아무튼, 인터넷 도메인 창에 localhost:8080
이라고 칩니다.
로그인 창이 열립니다.
코드가 돌아갑니다. 저는 분명 'localhost:8080'이라고 쳤는데 뒤에 '/login'이 추가로 붙어있습니다.
아무튼, 강의 내용처럼 test, 1234로 로그인을 시도합니다.
새하얀 404 페이지가 뜹니다.
아- 노파심에 하는 말인데, 지금 열려있는 웹사이트는 로컬서버에서 실행되어 현재 다른 사용자들과 공유되지 않습니다.
이번에는 'http://localhost:8080/auth/signup' 이라고 입력합니다.
회원가입 창이 열립니다.
이번에는 'http://localhost:8080/auth/signin' 이라고 입력합니다.
로그인 창이 열립니다. ..? 위에서 본 창과는 다릅니다. 위의 도메인은 관리자 페이지인가 봅니다.
디자인된 페이지들이 잘 열리는 것을 확인했습니다. 하지만 현재 데이터가 연동된 상태는 아닙니다.
강의의 내용은 프론트엔드 파일을 받아 백엔드를 작성하는 상황입니다.
강의에서는 크게 아래와 같은 목차를 제시하였습니다.
- Springboot 동작 원리
- JPA 동작 원리
- JPA 연관 관계 원리
- 인스타그램 클론 프로젝트
아래는 'application.yml' 파일입니다.
프로젝트의 전체적인 환경설정을 하는 파일이라고 이해하면 될 것 같습니다.
context-path
: '/'로 도메인을 구분합니다.
ddl-auto
: 'update'
이것은 서버가 재가동 될 때마다 데이터나 테이블 등이 그대로 유지된다는 뜻입니다.
만약 'create'라면 서버가 재가동 때마다 기존의 데이터가 초기화 됩니다.
path
: 윈도우의 경로 형태입니다. 조만간 수정을 해야될 것 같습니다.
이외에도 강의에서는 'yml' 파일에 대해 음료 공장에 비유해 설명했는데, 사실 현재의 저에겐 잘 와닿지 않습니다.