본문 바로가기

개발

(25)
[스프링부트 게시판] 12. 메인화면 만들기 이번 게시물에서는 블로그 게시판을 위한 홈페이지를 만들 기준이 되는 메인화면을 구성하려고 합니다. HTML과 CSS를 잘 다루거나 또는 프론트엔드에서 사용하는 React, Vue.js 등으로 구성할 수 있지만 필자는 Bootstrap을 이용한 화면으로 디자인하려고 합니다. Bootstrap 4 Tutorial W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more. www.w3schools.com Bootstra..
[스프링부트 게시판] 11. JPA DELETE 이번 게시글에서는 DELETE 작업을 수행하도록 하겠습니다. 전에 INSERT, SELECT, UPDATE로 사용한 사용자(User) 데이터베이스의 현재 상태입니다. 사용자 삭제를 위한 DELETE 작업을 위해 UserController 클래스에 다음과 같은 함수를 추가하였습니다. [UserController] @DeleteMapping("/user/{id}") public String delete(@PathVariable Long id) { try { userRepository.deleteById(id); } catch (EmptyResultDataAccessException e) { return "삭제에 실패하였습니다. 해당 id는 DB에 존재하지 않습니다."; } return "삭제가 완료되었습니다..
[스프링부트 게시판] 10. JPA UPDATE 이번 게시글에서는 데이터를 전달 받아 해당 사용자의 정보를 수정하는 UPDATE 작업을 수행하도록 하겠습니다. 우선 UserController 클래스에 다음과 같이 함수를 구현하였습니다. [UserController] @PutMapping("/user/{id}") public void update(@PathVariable Long id, @RequestBody User requestUser) { User user = userRepository.findById(id).orElseThrow(() -> { // IllegalArgumentException 예외 처리 throw new IllegalArgumentException("해당하는 아이디가 없습니다 id : " + id); }); user.setPass..
[스프링부트 게시판] 9. JPA SELECT 이번 게시글에서는 데이터베이스에 들어있는 데이터에 대해 확인을 하는 SELECT 작업을 수행하도록 하겠습니다. 먼저 5개의 사용자를 추가하도록 이전 post를 통한 회원가입을 진행하도록 하겠습니다. 이후 이전 시간에 생성시켰던 UserController 클래스에서 SELECT를 확인 할 수 있는 코드를 추가하도록 하겠습니다. 여기서 '{ }'와 @PathVariable 어노테이션은 주소를 통한 파라미터를 전달받기 위해 사용하였습니다. 위와 같은 주소의 예시로 /toy/user/1 이렇게 작성을 해야하는데 실수로 {id}에 해당하는 값이 없어 널(null)값이 될 수도 있습니다. 이러한 변수가 들어가 문제가 발생하는 경우가 있습니다. 여기서 JpaRepository 클래스에서 데이터를 가져올 때, 예외를 ..
[스프링부트 게시판] 8. 회원가입을 위한 JPA INSERT 이번 게시글에서 회원가입을 위한 데이터베이스에 사용자를 추가하는 JPA Insert에 대해 알아보고자 합니다. 먼저 회원가입을 위한 테스트용 Controller 클래스 파일을 생성하겠습니다. 사용자 관련 컨트롤러인 UserController를 생성했습니다. [UserController] @RestController public class UserController { @PostMapping("/user/join") public String join(String username, String password, String email) { System.out.println("username : " + username); System.out.println("password : " + password); Sys..
[스프링부트 게시판] 7. 테이블 생성 이번 게시글에서 JPA를 이용한 테이블을 생성하도록 하겠습니다. ToyProject에서 사용할 테이블은 User, Board, Reply로 3개로 나뉘어 생성할 것입니다. 우선 Entity들을 모을 패키지를 새로 생성하여 3가지의 Entity 클래스를 생성해주었습니다 먼저 사용자 엔티티, User 부터 설정해주었습니다. [User] @Data @AllArgsConstructor @NoArgsConstructor @Builder @Entity public class User { @Id @GeneratedValue private Long id; @Column(nullable=false, length=30) private String username; @Column(nullable=false, length=1..
[스프링부트 게시판] 6. application.properties 설정 이번 게시글에서는 스프링부트의 전반적인 설정을 담당하는 application.properties 설정에 대해 설명드리려고 합니다. 먼저 .properties 에 대해서 간단히 말씀드릴 것은 'Key=Value형식으로 파라미터 정보들을 저장하기 위한 파일 확장자를 의미' 라고 불립니다. 이것을 사용하는 것에서 나중에 배울 Spring message들을 묶어 놓는 message.properties 등이 있습니다. 스프링부트의 전반적인 설정을 담당하는 것은 yml도 있지만 이는 나중에 리팩토링 하면서 바꿔보도록 하겠습니다. 아래의 링크는 properties에 전반적으로 쓰이는 스프링 공식 홈페이지 Document 입니다. http://docs.spring.io/spring-boot/docs/current/re..
[스프링부트 게시판] 5. Lombok 세팅 이번 게시물에는 저번 의존성 설정 때 추가했던 Lombok 에 대해 설명드리고자 합니다. 우선 Lombok 은 간단하게 말하자면 어노테이션 기반으로 코드를 자동완성 해주는 라이브러리 입니다. 기존에 VO를 설정할 때 각 해당하는 형과 변수값을 정하고 Getter와 Setter를 만들고 필요하다면 생성자까지 만들어야합니다. 하지만 이렇게 작성하는 경우 매우 길어지고 보기가 불편해집니다. public class Store extends Common { private String companyName; // 상호명 private String industryTypeCode; // 업종코드 private String businessCodeName; // 업태명 private String industryName; ..