| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- MegabyteSchool
- github
- Spring
- Interface
- GIT
- #javaStudy
- side project
- array
- 내일배움카드
- 개발자취업부트캠프
- View
- Entity
- Sts
- tomcat
- AWS
- crud
- Java
- MVC
- 게시판 만들기
- 메가바이트스쿨
- spring boot
- 게시판 리뷰 만들기
- #패스트캠퍼스 #국비지원교육 #메가바이트스쿨 #MegabyteSchool #개발자취업부트캠프 #내일배움카드
- MVC 패턴
- group study
- Algorism study
- 국비지원교육
- 클래스 상속
- 패스트캠퍼스
- 클래스 class
- Today
- Total
목록GroupStudy (12)
tuter77
● 기존 healthInfo View에 CRUD 구현 수정. ▷ Entity를 DTO로 기존의 엔티티를 통해 데이터를 전달하는 방식을 완전 수정했다. View와 컨트롤러, 서비스 간에 데이터를 교환할 때 엔티티 자체로 수정하고 보내는 것이아니라 DTO에 값을 저장해서 DTO에 Setter를 구현해 값을 주고받는 형태로 변환했다. - homeController @RequiredArgsConstructor @Controller @Slf4j public class HomeController { private final HealthRepository healthRepository; private final HomeService homeService; //기본형태 사용안함. @GetMapping("/home") ..
● Review CRUD 구현. ▷ 구현하기 전 정보 review는 앞서 엔티티를 구현할 때 각 게시글(healthInfo)의 id값을 참조로 가져 해당 id값을 게시글의 리뷰형태로 구현해야한다. 이 때문에 데이터를 view에 보여주는 것부터 고민이었는데, 일단 상세페이지에서 healthinfo id 값을 통해 리뷰를 불러오는 형태로 가기로 했다. id값은 review 엔티티에 healthinfo 객체에 저장되는데, db에서 이름이 health_id로 지정이 되어있다. 앞서 review 엔티티를 구현할 때 healthinfo 엔티티에 리뷰를 추가하는 메서드를 구현해 놓았는데 이를 이용할 수 있을지.. 해봐야한다. 복습해보면, review 엔티티에서 manytoone의 관계를 healthinfo 엔티티와 ..
● Controller 및 Service 클래스 수정 ▷ 저장 및 수정. 컨트롤러 내에서 repository를 그대로 이용하는 것은 service클래스를 쓰는 의미가 없다는 것을 잊고 작업하였다가 이번에 수정하게 되었다. 또한 엔티티에서 Setter를 사용하는것은 안좋다고 하여 Setter 어노테이션을 제거했는데, 데이터값이 전달되지않아 다시 넣었다.(이 부분에서 시간을 다 잡아먹었다.) 또 시간이 많이 들었던 부분은 modify 기능이다. 해당 기능을 controller에 Setter로 구현해놓았을때는 괜찮았으나, Service로 옮기면서 수정기능이 실행되지않았다. 수정된 저장 - 컨트롤러 @GetMapping("/write") // 저장 페이지. public String write(){ return ..
● 그룹스터디 게시판 웹 구현 ▷ CRUD 중 U 저번주에 진행하던 DB에서 데이터를 받아와 웹 브라우저에 띄워주는 작업을 마무리했다. 조회, 새 글 저장, 기존 글 삭제 는 구현했지만 왜인지 수정기능이 작동하지 않았었는데 알고보니 어노테이션을 잘못 붙였었다.PostMappting으로 해야 정보를 새로 저장하는 것이 가능한데 데이터를 가져오기만 하는 겟매핑 어노테이션으로 시도하고 있었던것....(멍청한 나.. 오탈자와 기본기에서 너무 모자라다.)정상작동하게 된 코드는 아래와같다. 먼저 상세페이지. 이 브라우저에서 해당 이름을 클릭하면 상세정보를 볼 수 있는 상세페이지로 넘어가는데 상세페이지는 아래와 같이 구현했던걸, 저번주에 공부했다. 그 중 수정페이지로 넘어가는 버튼을 상세페이지 안에 구현했다. 이 수..
● 저장, 삭제 기능 구현. ▷ 저장 html 페이지 아래에 자료를 입력하세요. 저장 ▷컨트롤러 저장 메서드 @RequiredArgsConstructor @Controller @Slf4j public class HomeController { private final HealthRepository healthRepository; private final HomeService homeService; @GetMapping("/write") // 저장 페이지. public String write(){ return "writer"; } @PostMapping("/write/post") //저장 기능 구현. public String writerPost(HealthInfo healthInfo){ healthRepos..
● 연관관계 엔티티 피드백 및 다음 과제 ▷ 연관관계 엔티티 Review와 healthInfo 엔티티를 봤을때, 팀장님이 내가 작성한 엔티티에서 List를 활용한 구문을 짚어주셨다. @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "healthInfo") private List reviews = new ArrayList(); 이 구문에서 로딩방식을 Lazy로 적용한 것과 엔티티의 상태변화를 적용할 cascade를 활용한 점이 좋았다고 했다. 또한 아래의 List로 생성한 이유를 아느냐고 했는데, 나는 이유를 몰랐었다. 설명해주신 부분은 댓글이 없는 경우에 null에러 예외를 방지하고자 이렇게 선언한다고 한다. 전반적으로 코..
● 앞서 공부했던 내용 피드백. ▷ 피드백 이전의 블로그 게시글에 올려놓은 코드들을 팀장님이 피드백 해주셨는데, 일단 독자적으로 코드를 쓴것이 아니라 실망하신 눈치였다. 능력부족이 체감되었지만, 그래도 각 기능들이 swagger를 통해 정상작동하여서 나름은 뿌듯했었다.(계속하다보면 나만의 코드도 쓸수있지않을까..)어쨌든 궁금했던, 어노테이션과 RequestDTO Body의 연관성에 대해선 원래는 크게 연관이 없다고 하셨다.다만 DTO 파일 내에선 어노테이션 중 @SETTER가 기존엔 파라미터 바디로 바꾸어주는 역할을 해서 해당 어노테이션을 제거하면 작동을 하지 않아야한다는데, 왜 그런지는 멘토님께 문의하기로 했다. 다만, 요청으로 오는 파라미터는 json(네트워크 상 주고받는 경량의 데이터 형식) obj..
● healthInfo 데이터를 이용한 게시판 CRUD 구현공부. ▷ 배치파일 데이터를 내 DB에 저장. - 팀장님이 공유해준 HealthInfo 배치파일을 인텔리제이에서 실행해 이미 생성되어있는 내 Mysql DB에 저장하는 과정을 제일 먼저하기로 했다. 사실 어제 밤부터 이 파트를 진행했는데, DB데이터타입 오류로 계속해서 해결이 되지않아 오늘까지 미뤄졌다. 팀장님과 조원님의 도움으로 yml파일 내에 db url지정이 달랐다는 것을 알게 되어 오류를 해결하게 되었다. 위의 사진에서 보면 url에 mysql 내 study 스키마에 접근하게 되어있는데, 나는 db에 해당 스키마가 없었고 db와 연결되지 않은 상태에서 인텔리제이 내의 db navigator에 study 스키마를 생성하는 등의 뻘짓을 했다...