My project
JpaRepository Query Method (엔티티 필드에 _가 들어있으면?)
이번 글은 레포지토리를 작성하면서 있었던 일이다. 사실 처음에는 직접 구현하고 싶어서 EntityManager를 사용하여서 개발했다. em.persist()등을 직접 사용하고 있었다. 모든 repository를 직접 개발하려 했으나 개발 바닥 톡방에서 남들이 쓰고 간단한 건 빠르고 간결하게..라는 조언을 받았다. 그래서 하나의 repository만 직접 구현했고 그것도 나중에는 jparepository로 바꾸었다ㅎ.. JpaRepository를 상속 받으면 쿼리 메서드들을 작성, 구현하지 않고 사용할 수 있다. 대표적으로 save(), delete()등을 바로 사용할 수 있어서 insert, update, delete 쿼리를 우리가 따로 작성하지 않아도 편리하게 사용할 수 있다. select를 하려면 우..
DTO? DTO 필요한 이유, DTO 사용해 보기!(VO?)
이 프로젝트를 진행하기 전에 가장 적용하고 싶었던 것들 중에 하나가 DTO이다. 전에 구글링을 하던 중 DTO가 정말 많이 사용되던 것을 보았어서 적용해 보아야겠다고 생각했다. 그때는 정의만 보고 와닿지 않았지만 사용해 보니 이유를 알게 되었다. 본인은 user의 로그인, 회원 가입, 정보 수정 같은 값을 받아올 때 사용했다. (물론 많은 검색과 이해를 통해 이 글을 작성한다. 하지만 이해를 쉽게 해주기 위해 나의 생각이 많이 들어가서 조금 부정확할 수 있다.) DTO (Data Transfer Object) DTO는 이름 그대로 데이트 전송 객체 즉 데이터를 옮겨 주는 객체이다. 데이터를 전달하는 것이 핵심이다. 사용해 보기 전에는 이 정의만 보고 그게 왜 필요하지?라는 생각이 들었다. 예제를 보겠다!..
@Column(nullable = false) vs @NotNull (@NotBlank, @NotEmpty?), UNIQUE 설정하기
로그인 아이디, 비밀 번호 등과 같은 중요 속성들을 NOT NULL 제약 조건을 데이터베이스에 걸고 싶었다. php를 사용할 때는 순수 sql문을 작성하였기에 별 문제없었다. jpa를 사용해 엔티티로 관리를 하려니 모르겠어서 찾아보니 두 가지 방법이 나왔고 지금의 코드에는 @Column(nullable = false), @NotNull을 모드 사용했다. (기분 내키는 대로 여기저기 아무거나 써놓은 상태) 하나로 통일하고 이유를 알고 쓰기 위해 공부하고 정리해 보자! @Column(nullable = false) 우선 @Column은 JPA에서 컬럼의 매핑과 속성을 정의하는데 사용된다. (나만 알아듣게 거칠게 표현하자면 여기에 적으면 db의 제약 조건등이 직접적으로 생긴다. JPA나 Spring에서 검증이..
springboot + jpa + mysql로 인프런 따라하기?
https://te-ho.tistory.com/47 php + mysql 웹사이트 만들기 학교 데이터베이스 수업 중 php와 mysql을 활용해 웹 사이트 기능 구현을 하는 과제가 있었다. 간단하게 유저 목록 조회 등록 등과 같은 간단한 기능만 구현할 수 있었지만 조금 더 추가하는 욕심 te-ho.tistory.com 전에 과제로 만들었던 인프런 사이트를 spring으로 완성했다. 쉽지 않을 것을 예상했지만 더 쉽지 않았다. 이후 김영한님의 강의를 보며 리팩토링을 진행할 예정이다. (mvc 강의를 중심으로 우선 진행한다. JPA관련은 전에 공부했던 것 위주로 아는 선에서 사용한다.) 코드를 올릴 github 주소이다. https://github.com/Te-H0/spring_mysql_inflearn G..
php + mysql 웹사이트 만들기
학교 데이터베이스 수업 중 php와 mysql을 활용해 웹 사이트 기능 구현을 하는 과제가 있었다. 간단하게 유저 목록 조회 등록 등과 같은 간단한 기능만 구현할 수 있었지만 조금 더 추가하는 욕심을 부려보았다. (이건 사소한 욕심이었고 css 건들다가 눈물이 흘렀다.) 나는 마침 김영한님의 강의 할인을 확인을 하기 위해 inflearn을 수시로 들어가고 있던 시기여서 inflearn을 참고한 사이트를 만들었다. (? 클론 코딩이라고 하기에는 너무 작지만) php, mysql을 다루었고 서버는 수업 시간에 예시로 나온 xampp를 이용했다. 데이터 베이스 설계 간단한 로직을 생각하였기에 테이블은 고객, 수강, 강의, 강사 총 4개 만들었고 속성도 특이한 점 없는 것들로 구성했다. 과제 제출 후 강의 - ..