⭐ SpringBoot/𝄜 게시판 with SpringBoot (31) 썸네일형 리스트형 30. ObjectMapper(JSON을 객체로 변환) (동영상 보면서 정리 필요...) # 요약 자바 객체를 JSON으로 변환 String json = objectmapper.writeValueAsString(burger); 오브젝트 맵퍼를 가지고 writeValueAsString이라는 메소드를 호출할때 입력 값으로 자바 객체인 (burger)를 넣는다. 이 책체가 json으로 튀어 나온다. 또한 그 반대인 json 객체를 자바 객체로 변환 하였는데, Burger burger = objectmapper.readValue(json, Burger.class); 오브젝트 맵퍼가 readValue라는 메소드를 호출 하는데 여기에서 첫번째 입력값으로 json을 넣고 입력된 json으로 만들 새로운 객체의 타입을 Burger.class 뒤에다가 넣어주면 Burger .. 29. AOP에 대해 알아보 (추후 정리 다시 해야함...) # 요약 댓글 생성 서비스에서 입력된 파라미터 반환값을 로그로 확인해 보았다. aopo 패키지 폴더안에 DebbuggingAspect와 PerformanceAspect 파일을 생성하여 디버깅과 메소드의 러닝타임 체크를 진행 하였다. DebbuggingAspect 에서는 AOP 클래스를 선언 하였고 @컴포넌트로 등록한 다음에 @포인터 컷으로 대상을 지정할 수 있었다. 대상이 실행되기 이전에 실행 할 수도 있고, 정상적으로 실행이 된 이후에 실행 할 수도 있다. @애프터리터링 파라미터 값과 오브젝트의 값이 같아야 실행이 가능 했다. 끝으로 DELETE 메소드의 실행시간 측정도 진행 하였는데, 실행시간 측정을 위해서 RunningTime이라는 어노테이션을 직접 정의를 해보았고,.. 28. IOC 와 DI (영상 참조하여 내용 정리 필요) # 요약 돈가스를 요리할때 처음에는 쉐프가 재료 준비를 자기가 직접 new 를 통해 fork도 만들고 beef도 만들고 치킨도 만들고 그래야만 했었다. 그렇게 되면 요구사항이 바뀔때마다 요청이 달라질때마다 계속 내부적인 코드를 변경 해야만 했다. 즉 이렇게 비효율적인 방법이 아니라, DI 즉 외부에서 값을 삽입하는 방법으로 즉 DI하는 방식으로 코드를 개션하면 외부의 요구사항이 변하더라도 내부의 코드가 변경되지 않게 코드를 유연하게 작성할 수 있다. 라는것을 확인 하였고, 더 나아가 IoC 컨테이너에 @Component를 통해서 우리가 필요한 객체를 등록하고 이 IoC에 등록된 객체를 @Autowired를 통해서 DI 즉 땡겨올수 있다. 라는것을 코드로 확인 하였다. #.. 27. DB 설치 및 연동 # PostgreSQL을 설치하고, 이를 스프링 부트와 연동한다. # 여기서는 PostgreSQL을 기반으로 연동을 하지만, 다른 SQL 프로그램들도 비슷한 흐름으로 연동하면 된다. DB 연동과정 1. DBMS를 설치 (PostgreSQL) 2. 관련 DB 드라이버를 스프링 부트에 추가 3. 연동설정 작성 PostgreSQL 다운로드 https://www.postgresql.org/download/ PostgreSQL: Downloads Downloads PostgreSQL Downloads PostgreSQL is available for download as ready-to-use packages or installers for various platforms, as well as a source c.. 26. 댓글 삭제 with JavaScript (재 정리 필요) # 요약 1. 삭제 버튼을 추가 하였다. 삭제할 대상의 id를 같이 물려주기 위해서 data-comment-id="{{id}}" 속성을 함께 담아 주었고, 댓글이 여러개가 생성되어 삭제 버튼이 여러개가 생성되었을 수 있기 때문에 comment-delete-btn 이라는 class를 같이 추가 하였다. comment-delete-btn이 값을 가지고 javascript를 통해서 document.querySelectorAll(".comment-delete-btn");를 통해서 여러개의 버튼을 가지고 왔고, 그 버튼을 처리하기 위해서 반복문을 돌려서 각 버튼의 대한 클릭 이벤트를 등록 하였다. 발생 이벤트된 버튼을 찾아서 그 버튼에서 댓글 id를 가져왔고, 그 아이디를 가지고 fetrch를 .. 25. 댓글 수정 with 자바스크립트 요약 list.mustache 파일에 모달 드리커 버튼 이라는 주석으로 수정 버튼을 추가 하였다. 그리고 수정 버튼을 클릭 했을때 새로운 창이 등장하면서 수정 화면이 나오게 하는것이 Modal이다. 해당 Modal 코드는 부트스트랩 Docs 문서에서 검색하면 구현 코드를 볼 수 있다. 모달을 클릭했을때 값들을 가져오는 방법은 부트스트랩 Modal 페이지에서 우측의 리스트 참조하여 Varing modal content 항목에서 자바스크립트를 통해서 가져올수 있었다. 그리고 마지막으로 수정 버튼이 클릭이 되었을때 REST API의 요청이 서버로 전달되도록 하는 코드도 생성 하였다. 해당 코드에서 // 수정 완료 버튼 부터 해당 한다. 1. 수정버튼을 가져온다. 2. 클릭이벤트가 감지가 되면 3. 수정된 댓글.. 24. 댓글 등록 with JavaScript 요약 댓글 등록을 위한 뷰 페이지를 만들었고, 댓글 작성 버튼이 클릭 되었을때 그 신호를 감지하기 위한 코드도 생성 하였다. 해당 버튼을 변수화 하여 그 버튼에서 클릭 이벤트를 감지하게 하고 // 새 댓글 객체 생성 내용이 실행되게 하였다. 그때 쿼리 셀렉터를 통해서 nickname과 body, article-id의 값을 가지고 왔다. 그리고 해당 값을 객체로 생성 후 fetch()라는 API를 통해서 REST API를 POST 방식으로 JSON 데이터를 던져서 호출 하였다. 그래서 그 응답이 들어오면 그 응답으로 메세지를 출력하거나 페이지를 새로고침 하는등의 자바스크립트 코드를 완성 하였다. # 댓글 등록 뷰 페이지를 만들고, REST API를 호출하여 새 댓글을 추가한다. 댓글등록 작업 진행 흐름 1.. 23. 댓글 목록 뷰 만들기 요약 댓글을 위해 show.mustache 파일 하단에 {{>comments/_comments}} 파일을 삽입 하였다. 해당 _comments 파일을 댓글 목록을 보여주는 부분과 새 댓글을 작성하는 부분으로 나누어져 있다. _list.mustache 파일로 들어가서 보면 {{#commentsDtos}} {{/commentsDtos}} 파일 안의 내용을 반복하여 실행하고 있다. 여기에는 {{nickname}}과 {{body}}가 담겨 있는데 그 내용은 아래와 같이 출력되는 것을 볼 수 있다. # 댓글 목록 뷰 페이지를 만들고, 이를 게시글 상세 페이지에서 확인 한다. 일단 이전의 생성된 상세 페이지를 확인 한다. 서버를 구동 시키고 localhost:8080/articles/5 로 접근을 하면 아래와 같은.. 이전 1 2 3 4 다음