User 클래스를 생성하고 실행하면 테이블이 자동으로 생긴다. @Data @NoArgsConstructor @AllArgsConstructor @Builder @Entity//User클래스가 MySQL에 테이블이 생성이 된다. //@DynamicInsert//Insert 시에 Null인 필드를 제외시켜준다. public class User { @Id//Primary key @GeneratedValue(strategy = GenerationType.IDENTITY)//프로젝트에서 연결된 DB의 넘버링 전략을 따라간다. private int id; //시퀀스,auto_increment @Column(nullable = false, length = 30) private String username; //아이디..
✅타임리프 실습 이유 JSP와 유사하게 ${ } 이용 가능 Model에 담긴 객체를 화면에서 JS로 처리하기 편리함. 연산이나 포맷과 관련된 기능을 지원함. .html 파일 생성 시 문제가 없고 별도의 확장자를 이용하지 않음. 🤍Thymeleaf 이용 프로젝트 생성 Spring Boot DevTools / Lombok / Spring Web / Thymeleaf 추가 타임리프를 이용하는 프로젝트는 변경 후 만들어진 결과를 보관(캐싱)하지 않도록 설정해두는 것이 편리함. application.properties 파일에 아래 코드 추가 spring.thymeleaf.cache=false SampleController 클래스 생성 @Controller @RequestMapping("/sample") @Log4..
🤍MariaDB 설치와 데이터베이스 생성 MariaDB는 MySQL과 거의 동일한 기능을 제공하면서 완전한 오픈 소스라는 장점이 있다. MariaDB를 통해 상용화된 서비스를 개발하고 운영하여도 라이센스 비용 걱정X, AWS와 연동 시에도 최소한의 비용으로 운영이 가능함. 1. 먼저 MariaDB를 설치해 준다. 나는 이미 설치되어 있어서 이 과정은 생략했다. 2. ROOT 계정 패스워드 기억하기, UTF-8 세팅 중요!! 3. HeidiSQL 프로그램을 실행해서 ROOT 계정 정보를 입력 후 접속 4.신규 데이터베이스를 bootex라는 이름으로 생성한다. 5. 사용자 인증 및 권한 관리를 선택 후, bootuser라는 이름으로 계정을 생성하고 해당 데이터베이스에 모든 권한을 추가하고 저장한다. 🤍Spr..
스프링부트 공부를 위해 책 한 권을 끝냈지만 너무 맛보기 느낌이라 부족한 거 같아서 책 한 권을 추가 회독하기로 했다. 이번에 선택한 책은 구멍가게 코딩단 - 코드로 배우는 스프링부트 웹 프로젝트 !! 🤍프로젝트 생성 Gradle, War 선택 의존성은 Spring Web, Lombok, Spring Boot DevTools 3가지 추가 간단한 컨트롤러 실습 @RestController를 이용해 별도의 화면 없이 데이터를 전송 @GetMapping을 이용해 브라우저의 주소창에서 호출이 가능하도록 설정 실행 결과 🤍스프링부트 단독으로 실행 가능한 파일로 만들기 💡기존 스프링은 Tomcat 등의 별도의 WAS가 필수적이었으나 스프링부트에서는 단독으로 실행 가능한 웹 애플리케이션을 jar 파일로 제작하고 사용..
🔍lombok이란? Java의 라이브러리로 반복되는 메소드를 어노테이션을 사용해서 자동으로 작성해주는 라이브러리 보통 DTO나 Model, Entity의 경우 여러 속성이 존재하고 이들이 가지는 프로퍼티에 대해 Getter, Setter, 생성자 등을 매번 작성해줘야 하는 경우가 많은데 이러한 부분을 자동으로 만들어주는 라이브러리라고 생각하면 된다. 🤍lombok 세팅 맨 처음에 프로젝트를 만들 때 lombok 의존성을 추가해주었다. 이제 STS에서 사용할 수 있도록 설치를 해줘야 한다. pom.xml을 보면 dependency가 아래와 같이 추가되어 있다. org.projectlombok lombok true user 폴더의 .m2 -> repository 폴더가 의존성이 추가되는 폴더인데 여기에서 위..
🔍HTTP 요청 방식 HTTP 통신 : 약속 통신 방법 4가지 : GET, POST, PUT, DELETE (이외에도 더 많지만 이 4가지만 기억하면 된다고 하셨다.) GET : 데이터를 줘! -Select POST : 데이터를 추가해줘! -Insert PUT : 데이터를 수정해줘! -Update DELETE : 데이터를 삭제해줘! -Delete 🔍MIME (Multipurpose Internet Mail Extensions) 이란? 다목적 인터넷 메일 확장이란 뜻으로 전자우편의 데이터 형식을 정의한 표준 포맷 기존 전자우편은 문자 데이터 이외의 바이너리 데이터(이미지, 동영상, MS 워드 등)를 전송할 수 없었다. 그리하여 여러 멀티미디어 데이터들의 바이너리 데이터를 ASCII 코드로 변환하는 방법(인..
오늘부터 일주일 안으로 메타코딩 님의 스프링부트 블로그 만들기 총 75강을...끝내기로 했다 도저언! 1강부터 9강까지는 자바 환경변수 설정, MySQL 설치, STS 설치, Git 연동 등 기본적인 세팅에 관한 내용인데 이미 내 노트북에 이런 기본 설정은 되어 있어서 슉슉 넘어갈 수 있었다. 🤍STS4 설치 이 강의에서는 인텔리제이 대신 STS4 툴을 사용한다. 내 컴퓨터에는 3버전이 깔려 있어서 STS4를 새로 설치해주었다. https://spring.io/tools Spring Tools 4 is the next generation of Spring tooling Largely rebuilt from scratch, Spring Tools 4 provides world-class support fo..
앞서 Travis CI를 활용하여 배포 자동화 환경까지 구축했지만 배포하는 동안 애플리케이션이 종료되는 문제는 해결되지 않음 => 어떻게 해야 서비스 중단 없이 배포를 계속할 수 있을까? 🤍무중단 배포란? 서비스를 정지하지 않고 배포할 수 있는 방법 AWS에서 블루 그린 무중단 배포 / 도커를 이용한 웹 서비스 무중단 배포 사용자는 서비스 주소로 접속 -> 엔진 엑스는 사용자의 요청을 받아 현재 연결된 스프링부트로 요청을 전달 -> 스프링부트2는 엔진엑스와 연결된 상태가 아니니 요청받지 못함. 배포하는 동안에도 서비스가 중단되지 않음! 🤍엔진엑스 설치와 스프링부트 연동하기 sudo yum install nginx //엔진엑스 설치 sudo service nginx start //엔진엑스 실행 리다이렉션 ..