SpringBoot10 [AWS] 같은 브랜치에 있는 프론트엔드, 백엔드 자동배포하기 (6) Jenkinsfile, vue & springboot Dockerfile 작성 1. 프로젝트 구조 프로젝트 구조는 다음과 같다. Jenkinsfile, frontend폴더, bacnekd폴더가 가장 최상단에 있고 그 밑에 Dockerfile이 있다. 2. Jenkinsfile tools에서 이전에 설치한 메이븐 이름을 쓴다. M3로 설정했으므로 maven "M3"을 적는다. stages는 네 단계로 나눴는데, 다음과 같다. 1) Docker kill 이미 프론트엔드, 백엔드 돌아가고있는 도커가 있다면 멈추고 해당 컨테이너를 지웠다. 만약 그 컨테이너가 없다면 오류가 나면서 빌드가 멈추기 때문에 || 연산을 사용해서 있든 없든 빌드가 계속되도록 했다. 2) Prepare checkout scm 명령어로 깃 레파지토리를 가져온다. 성공한다면 prepare success, 실패한다면 p.. 기록/CI&CD 2022. 8. 18. [SpringBoot] DB정보 엑셀로 다운로드하기 1. pom.xml org.springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-web org.apache.poi poi-ooxml 4.1.2 mysql mysql-connector-java runtime 2. Excel Helper 업로드와 동일하게 POI의 Workbook, Sheet, Row, Cell 클래스를 사용한다. 간단한 과정은 다음과 같다. 1. Workbook 생성 2. Workbook에서 Sheet 생성 3. 파라미터로 받은 저장할 객체 리스트를 반복하면서 각 cell에 set한다. 4. ByteArrayOutputStream을 생성해서 workbook을 저장한다. 5. .. 기록/BACKEND 2022. 8. 5. [SpringBoot] 엑셀 DB에 업로드하기 1. pom.xml org.springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-web org.apache.poi poi-ooxml 4.1.2 mysql mysql-connector-java runtime 2. Excel Helper Apache POI 클래스인 Workbook, Sheet, Row, Cell을 사용한다. 과정은 다음과 같다. 1. InputStream에서 Workbook을 생성한다. 2. Workbook에서 Sheet 이름으로 가져와서 Sheet 객체를 생성한다. 3. Sheet.iterator()에서 Row 객체들을 순서대로 가져올 수 있다. 4. Row에서 Cell 객.. 기록/BACKEND 2022. 8. 4. [SpringBoot] JWT토큰 인터셉터 처리하기 보호되어 있는 글 입니다. 2022. 7. 30. [SpringBoot] 비밀번호 암호화하기 보안을 위해 사용자 비밀번호를 암호화시켜서 DB에 저장하려고 했다. 해시 알고리즘은 임의의 길이의 데이터를 해싱처리 해 고정된 길이의 데이터로 매핑한다. 그러나 원문을 다시 만들어낼 수는 없다. 따라서 암호 보안에서는 암호를 해시 처리한 후 사용자 ID와 함께 짝을 지어 DB테이블에 보관한다. 로그인 시, 입력한 암호는 해시 처리되어 DB 테이블의 해시 처리된 입력값과 비교한다. 두 값이 일치한다면 사용자가 올바른 비밀번호를 입력한 것이다. 스프링에서는 비밀번호 암호화를 위해 제공하는 라이브러리가 있다. 지금 진행하는 프로젝트에서는 springboot를 사용하고 있으므로 이 라이브러리를 활용하기로 했다. 1. pom.xml spring boot starter security를 추가한다. org.sprin.. 기록/BACKEND 2022. 7. 23. [SpringBoot] 자바 메일 보내기 회원가입이나 비밀번호 찾기 메뉴를 이용할 때 인증코드를 보내려고 한다. 흐름은 다음과 같다. 1. pom.xml java mail을 보내기 위해 pom.xml에 다음을 추가했다. 이 부분을 추가해야 JavaMailSender나 MimeMessage 등 메일 보낼 때 필요한 클래스들을 사용할 수 있다. org.springframework.boot spring-boot-starter-mail 2. application.properties src/main/resources/application.properties에 다음 설정을 추가한다. 나는 gmail로 보냈기때문에 gmail에 맞는 설정이다. spring.mail.host=smtp.gmail.com spring.mail.port=587 spring.mail.. 기록/BACKEND 2022. 7. 21. [SpringBoot] 따로 개발한 springboot와 vue 합치기 스프링부트와 뷰에서 작업이 모두 끝났다면 뷰 파일을 스프링 static 폴더에 넣어 함께 실행시킬 수 있다. 1. vue 프로젝트 build 터미널에 다음 명령어를 입력하면 dist폴더에 프로젝트를 바로 실행할 수 있는 index.html파일과 css, js파일이 만들어진다. npm run build 2. dist 파일 spring으로 이동시키기 src/main/resources/static 위치에 dist 속 파일을 모두 넣으면 된다. 3. WebConfig 설정하기 내 config는 src/main/java/com/_____/_____/config/WebConfig.java에 있다. 따라서 그 클래스의 addResourceHandler 메서드에 다음을 추가한다. (코드는 나중에 헷갈리지 않기 위해 전.. 기록/BACKEND 2022. 6. 29. [SpringBoot] Swagger 3.x 적용 1. pom.xml 라이브러리를 추가한다. io.springfox springfox-boot-starter 3.0.0 2. application.properties documentationPluginsBootstrapper 빈 관련 오류를 막기 위해 다음을 추가한다. spring.mvc.pathmatch.matching-strategy = ANT_PATH_MATCHER 3. SwaggerConfiguration Class @Configuration, @EnableSwagger2 어노테이션을 추가한 configuration class를 만든다. consumes(Set consumes) parameter content type을 설정한다. produces(Setproduces) response content.. 기록/BACKEND 2022. 5. 10. [SpringBoot] MySql & MyBatis 설정하기 1. pom.xml 프로젝트를 만들 때 MyBatis Framework, MySQL을 추가해도 되고, 프로젝트가 생성된 후 pom.xml 하단 Dependencies에서 검색해 추가해도 된다. 결론적으로 pom.xml에 이 코드가 생성된다. org.mybatis.spring.boot mybatis-spring-boot-starter 2.2.2 mysql mysql-connector-java runtime 2. application.properties src/main/resources/application.properties에 다음을 작성한다. spring에서 servlet-context.xml에 있던 설정들이다. #DataBase Setting spring.datasource.driver-class-na.. 기록/BACKEND 2022. 5. 9. [SpringBoot] JSP사용하기(sts 3) 이 방식은 sts 3에서만 유효하다. 4 이상이라면 jsp파일이 더이상 만들어지지 않아서 다른 설정이 더 필요하다. 1. pom.xml jstl과 jsp(jasper - jsp 해석) 관련 라이브러리를 추가한다. Spring에서처럼 버전을 직접 설정하지 않는 이유는 스프링부트에서 알아서 설정해놓았기 때문이다. 미리 설정해놓은 버전 정보는 org.springframework.boot:spring-boot-dependencies:버전명.pom에 있다. javax.servlet jstl org.apache.tomcat.embed tomcat-embed-jasper 2. jsp 페이지 모음 폴더 생성 jsp 페이지를 모아놓을 폴더를 생성한다. src/main/webapp/WEB-INF 밑에 폴더를 만들면 된다... 기록/BACKEND 2022. 5. 1. 이전 1 다음