본문 바로가기

SpringBoot

(10)
[연재] SpringBoot diary : 설정파일 분리 (IntelliJ, Jenkins) 원본은 spring boot : 설정파일 분리 (IntelliJ, Jenkins) 에서 보실 수 있습니다. spring boot 프로젝트의 설정 파일인 application.yml (application.properties 확장자가 기본이야) 은 resources 디렉토리에 존재하기 때문에 프로그램을 빌드하면 해당 파일이 포함되어 보안에 문제가 있어. Gradle 의 Tasks 항목 아래의 build/bootJar 를 선택해서 실행해보면 배포를 위한 빌드를 할 수 있어. 빌드된 파일은 프로젝트 폴더 아래의 build/libs 디렉토리에서 찾을 수가 있는데, study.diary-0.0.1-SNAPSHOT.jar 라고 되어 있네. 확장자는 .jar 이지만, 압축파일 포맷이기 때문에 확장자를 .zip 으로 ..
[연재] SpringBoot diary - jenkins 배포 - diary 서비스화 원본은 jenkins: diary 서비스화 에서 보실 수 있습니다. 프로젝트 가장 상위에 script 디렉토리를 만들고 그 아래에 4개의 파일을 생성한다. script 디렉토리를 src 디렉토리의 바깥에 둔 이유는 소스에 포함시키지 않기 위해서이다. diary.service 파일의 내용 [Unit] Description=Diary Web Program After=syslog.target network.target [Service] #Type=simple User=root Group=root ExecStart=/usr/bin/java -Xms128m -Xmx256m -jar /var/webapp/diary/study.diary.jar Restart=on-failure RestartSec=10 [Instal..
[연재] SpringBoot diary - 로그인해서 일기쓰기 원문은 Spring Boot : study.diary 로그인해서 일기쓰기 에서 확인할 수 있습니다. diary 프로젝트에 폼 로그인 기능을 추가해서 로그인했을 때 Home 화면에서 일기 목록이 잘 보여지는것 까지는 성공을 했다. 그런데 일기쓰기 화면에서 일기를 작성하고 저장을 누르면 에러 페이지가 표시되었다. 도대체 무슨 일일까를 고민하다가, 일기쓰기 폼이 write.html 인데, 여기에서 “저장” 버튼을 누르면 처리되는 URL 에서 로그인하여 인증된 데이터가 사용되지 않은 것이 아닐까 생각되었다. write.html 파일에서 태그의 action 속성값을 아래와 같이 기록하고 있었다. 이것을 thymeleaf 문법에 따라 아래와 같이 수정했더니 잘 되었다. 앞의 일반적인 html 태그 방식으로 작성했을..
[연재] SpringBoot diary - Spring Security 폼 로그인 원문은 spring boot: study.diary : Spring Security 폼 로그인 에서 확인할 수 있습니다. diary 프로그램에 로그인 기능이 없어서 아무나 접근해서 읽기를 볼 수도 있고, 쓸 수도 있는 상황이야. spring boot 의 Spring Security 기능을 이용해서 폼 로그인 기능을 붙여볼께. https://start.spring.io 에서 Add Dependencies 로 security 를 검색하여 Spring Security 의존성을 추가해. Explorer 버튼으로 수정된 build.gradle 파일의 내용에서 spring security 의존성 부분을 복사해서 프로젝트의 build.gradle 에 붙여넣기 한다. build.gradle 변경된 것을 적용한다. 이 ..
[연재] SpringBoot diary - UI 개선 front-end (bootstrap + thymeleaf) 원문은 study.diary : UI 개선 front-end (bootstrap + thymeleaf) 에서 확인할 수 있습니다. Bootstrap : https://getbootstrap.kr Thymeleaf : https://www.thymeleaf.org Bootstrap 을 이용하기 위한 html 템플릿 소스 : Bootstrap 을 이용한 html 페이지 구성 Home [공통] 네비게이션바 : https://getbootstrap.kr/docs/5.3/components/navbar/ 위 경로에서 적절한 예시 코드를 복사해서 태그 안에 붙여넣기 한다. [공통] 푸터 : https://getbootstrap.kr/docs/5.3/examples/footers/ 위 경로의 웹페이지에서 F12 를 ..
[연재] SpringBoot diary - mybatis resultType="map" 원문은 https://blog.woohahaapps.com/mybatis-resulttypemap/ 에서 확인할 수 있습니다. spring boot 학습으로 study.diary 프로젝트를 만들어 봤었는데 mybatis 를 통해서 일기 내용을 가져오는 GetDiary 의 resultType 으로 domain 클래스를 지정했었지. ... select * from diary where id=#{id}; 이렇게 설정하면 GetDiary 쿼리의 결과로 얻어지는건 Diary 클래스 객체가 되지. @Data public class Diary { private Integer id; private LocalDate diary_date; private String diary_content; } 이번에는 resultTyp..
[연재] SpringBoot diary - BootStrap 을 이용한 html 페이지 구성 원문은 Bootstrap 을 이용한 html 페이지 구성 에서 확인할 수 있습니다. html 페이지를 구성할 때 기본적인 태그만으로도 가능하다. 그런데 예쁘지 않다!!! 예쁘게 구성하려면 CSS 가 필요하다. 간혹 이벤트를 처리하기 위해서 JS 도 필요하다. Bootstrap 은 CSS, JS 를 사용하여 예쁘게 html 을 구성할 수 있게 해준다. https://getbootstrap.com/ Bootstrap 에서 제공하는 CSS, JS 를 이용하기 위해서 html 에 링크를 삽입해줘야 한다. CSS 위 코드를 삽입해줄 부분은 html 코드의 영역이다. 코드는 모바일에서 적절한 반응형 동작을 위한 태그이다. JS 자바스크립트 번들(드롭다운, 팝오버 및 툴팁 위치 지정을 위한 Popper 포함)을 위해..
[연재] SpringBoot diary - mybatis 원문은 spring boot 학습 : mybatis : study.diary 에서 확인할 수 있습니다. spring boot 웹 애플리케이션을 작성할거야. DBMS 는 postgresql 을 사용할거고, DB 프로그래밍은 mybatis 를 사용할거야. html 은 thymeleaf 를 사용해보겠어. lombok 은 기본적으로 들어가주는게 좋을 것 같아. 프로젝트 구성 https://start.spring.io/ 에서 프로젝트를 구성하고 GENERATE 버튼으로 프로젝트 압축파일을 다운로드받을 수 있지. 프로젝트 열기 IDE 는 IntelliJ 를 사용하겠어. 프로젝트 실행 프로젝트를 오픈해서 바로 실행시켜보면 아래와 같이 메시지가 표시되지. . ____ _ __ _ _ /\\ / ___'_ __ _ _(..