안녕하세요, Brad입니다. 오늘은 주말은 맞아 지난주에 배웠던 qna미션 step2까지 혼자서 만들어보는 연습을 해봤는데요. 혼자 진행하면서 잘 생각이 안났던 부분, 참고했던 부분에 대해 정리해볼게요.
step2까지의 처음부터 혼자 힘으로 해보기
html 중복제거
- base.html에서는
{{# block "contents"}} {{/ block}}
와 같이 'block' 키워드가 사용되어야 하며, 해당 컨텐츠 부분 html에서는{{# partial "contents"}} {{/ partial}}
와 같이 'partial' 키워드가 사용되어야 합니다(키워드 혼동 주의!)
templates폴더 안에서 해당 html Mapping하기
MvcConfig 클래스 만들기
extends WebMvcConfigurerAdapter
로 상속받아 사용할 수 있습니다. 그런데 현재 depreciated되엇고 Spring5 이후로implements WebMvcConfigurer
로 사용 권장한다고 합니다.Override로
addViewControllers(ViewControllerRegistry registry)
추가하고 registry 매개변수를 이용해 등록할 수 있습니다.registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
는 뭐하는 역할일까요?registry.addViewController("/users/form").setViewName("user/form");
로 해당 url를 특정 매서드 없이 Mapping 가능합니다.상대경로, 절대경로
- 예를들어 a태그에서 href연결을 할때 앞에
/
가 없으면 상대경로로 인식을 합니다. 따라서users/form
로 연결하면 'localhost:8080/users/users/form'으로 연결될 수도 있습니다./users/form
으로 해야합니다. - css을 매핑할때도 마찬가지입니다.
/
가 앞에 없으면 상대경로로 인식하여 오류가 발생할 수 있습니다!
UserController 기능 구성하기
url 구성할 때 다음 표 참고하여 구성하면 됩니다. PUT방식이나 DELETE방식을 추가적으로 사용하는 이유는 url의 주소를 줄이기 위해서 입니다. Mapping방식과 url주소에 따라 매핑할 수 있음을 고려하면 url 주소는 같더라도 Mapping방식이 늘면 그만큼 경우의 수를 더 만들 수 있는 것이죠.
바로 DB 적용하기
@GeneratedValue
옆에 strategy 키워드를 이용하여 설정할 수 있습니다. id 값을 자동부여하고 auto로 +1씩 증가시킬 수 있도록@GeneratedValue(strategy=GenerationType.IDENTITY)
로 하였습니다.DB Connection 설정 - application.properties
spring.datasource.url=jdbc:h2:mem://localhost/~/java-qna;MVCC=TRUE;DB_CLOSE_ON_EXIT=FALSE spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
실행 쿼리 보기 설정 - application.properties
spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true
h2 db console에 접근 설정 - application.properties
- 'localhost:8080/h2-console'로 접근가능
spring.h2.console.enabled=true spring.h2.console.path=/h2-console
findById()
에서 Optional처리는 어떻게 하는게 제일 좋을까요?a태그는 GET방식으로만 매핑시킬 수 있나요?
PUT방식으로 보내기
<input type="hidden" name="_method" value="PUT" />
name으론 "_method", value는 "PUT". method 속성은 안써도 되네요!
Github repository에 해당 폴더 올리기
먼저 Github 사이트에서 repository를 생성합니다.
Terminal에서 repository에 push할 프로젝트 경로로 이동합니다.
git init
명령어를 통해 프로젝트 파일에 '.git'폴더를 생성합니다(local repository생성)git add .
를 통해 모든 파일을 stage에 올리기 전에 '.gitignore'파일을 생성하여 git관리 안 할 폴더/파일들을 지정합니다. 이후git add .
통해 모든 파일을 버전 관리 리스트에 추가시킵니다git commit -m "메시지 내용"
을 통해 commit 메시지를 작성하고 로컬 저장소에 해당 버전을 저장합니다.어떤 repository에 저장할 것인지 등록합니다.
git remote add origin 원격저장소(repository)주소
. 여기에서 origin은 remote repository의 별칭을 의미합니다. 따라서 origin 이외 따른 별칭을 사용할 수도 있습니다. 등록 확인은git remote -v
을 통해 할 수 있습니다.
- 원격 저장소에 해당 버전을 저장/업로드합니다.
git push -u origin master
여기서 master는 branch 이름, origin은 원격 저장소 별칭을 의미합니다. - 이후 Github의 이메일 주소 및 비밀번호 입력하시면 됩니다.
지금은 미션을 진행한지 별로 안되어서 많이 기억이 났는데 시간이 좀 지나면 어떻게 될지 모르겠네요. 그런데 Spring Framework내 작동을 이해하는 것도 필요할 것 같아요. 구현은 해도 이게 어떻게 작동하는지 모르면 나중에 에러가 발생했을 때 못 찾을테니까요..
'TIL' 카테고리의 다른 글
Today's Dev Notes(2018-11-21) (0) | 2018.11.22 |
---|---|
Today's Dev Notes(2018-11-19) (0) | 2018.11.19 |
Today's Dev Notes(2018-11-17) (0) | 2018.11.18 |
Today's Dev Notes(2018-11-15) (0) | 2018.11.15 |
Today's Dev Notes(2018-11-14) (1) | 2018.11.14 |