🔍데이터베이스 격리 수준(Isolation Level) 이란? 트랜잭션에서 일관성 없는 데이터를 허용하는 수준 🔍DB 격리 수준 종류 Read Uncommitted Read Commited Repeatable Read Serializable Read Uncommitted -> Serializable 로 갈수록 격리 수준이 높다.(high) Serializable -> Read Uncommitted 로 갈수록 격리 수준이 낮다.(low) Read Uncommitted SELECT 문장 수행 시 해당 데이터에 Shared Lock이 걸리지 않는 수준. 아직 커밋되지 않은 트랜잭션 A의 데이터를 B가 SELECT할 수 있음. Read Commited SELECT 문장이 수행되는 동안 데이터에 Shared Lo..
💡기존에는 form 태그에 action으로 주소를 걸어서 전송하는 방식을 사용했었는데 여기에서는 기존의 방식이 아닌, JSON을 활용해서 Ajax로 회원가입을 요청하는 방식으로 구현할 것이다. 1. 서버 요청이 들어왔을 때 기본으로 스캔하는 곳인 src/main/resources/static 아래에 user.js 파일을 생성해 준다. 2. 회원가입 버튼이 기존에 submit 타입이었는데 타입을 지우고 id값을 부여해 준다. 회원가입완료 3. id값을 가져와서 자바스크립트 코드를 작성해 준다. 4. 테스트용으로 아무 값을 입력하지 않고 회원가입완료 버튼을 눌러보면 alert창이 잘 뜨는 것을 확인할 수 있다. 5. 이제 ajax 코드를 작성해줄 것이다. 💡회원가입 시 Ajax를 사용하는 2가지 이유? 1...
1. W3School 사이트에 접속한다. 2. Navbar 선택 3. Collapsing The Navigaion Bar 코드 긁어오기 4. Basic Template 선택 5. Footer 코드는 이곳에서 긁어오기 6. 폴더 구조를 이렇게 만들어 주고 Index.jsp 파일에 아까 Navbar에서 긁어온 코드를 복사한다. 7. 그리고 Index.jsp 내용 중 헤더에 해당하는 코드, 푸터에 해당하는 코드를 분리해서 footer.jsp, header.jsp를 생성한다. footer.jsp 🤍Created by archive ☎010-1234-5678 인천광역시 header.jsp 홈 로그인 회원가입 Index.jsp : 분리한 헤더, 푸터를 include 해준다. 제목 적는 부분 상세 보기 제목 적는 부..
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 폴더가 의존성이 추가되는 폴더인데 여기에서 위..