
이지스퍼블리싱 서평단으로 선정되어 도서를 지원받아 솔직하게 작성한 글입니다. 자바로 앱 개발을 시작했었는데, 요즘은 코틀린이 대세라기에 궁금해서 이 책을 읽어봤다. 개발 환경 구성부터 컴포즈까지, 기초부터 활용까지 정말 탄탄하게 정리되어 있다. 특히 책을 읽다 궁금한 점이 생길 때마다 코너에서 바로 해결할 수 있어서 너무 좋았다. 코틀린이 처음이라 따로 문법 책을 사야 하나 고민했는데, 기본 문법도 잘 정리되어 있어서 입문자에게 딱 맞는 구성이라는 느낌! 그리고 이 책의 가장 큰 장점은 앱 개발을 처음 시작하는 사람도 이해하기 쉽게 설명이 자세하고 명확하다는 점이다. 중간중간 퀴즈를 풀면서 개념을 정리하고 복습할 수 있는 것도 정말 유용했다. 앱 개발을 빠르게, 그리고 기초부터 탄탄하게 배우고 싶은 사..

test.jsp let toHtml = function (comments){ let tmp=""; comments.forEach(function (comment){ tmp+= '' tmp+= ' comment='+comment.comment+'' tmp+= ' commenter='+comment.commenter+'' tmp+= ' up_date='+comment.up_date tmp+= ' 삭제' tmp+= ' 수정' tmp+= ' 답글' tmp+= '' }) return tmp+""; } 등록 답글 등록할 폼을 만들었다 $("#commentList").on("click",".replyBtn",function(){ //1.replyForm을 옮기고 $("#replyForm").appendTo($(thi..

ajax.jsp를 복사해서 test.jsp를 만들었다. commentTest SEND Data From Server : SimpleRestController.java 맨 위 클래스에 @RestController가 붙으면, 반환 타입이 뷰로 해석되지 않는다. @Controller public class SimpleRestController { // @GetMapping("/ajax") // public String ajax() { // return "ajax"; // } @GetMapping("/test") public String test() { return "test"; } 브레이크포인트를 걸고, 잘 들어오는 지 확인도 해봤는데 모두 잘 들어온다 (댓글들이 html로 나오지 않고 있음) let toHt..

DB부터 시작해서 DB에서 가까운 순으로 쭉 개발 commentMapper.xml DELETE FROM comment WHERE bno = #{bno} SELECT count(*) FROM comment WHERE bno = #{bno} DELETE FROM comment WHERE cno = #{cno} AND commenter = #{commenter} INSERT INTO comment (bno, pcno, comment, commenter, reg_date, up_date) VALUES (#{bno}, #{pcno}, #{comment}, #{commenter}, now(), now()) SELECT cno, bno, pcno, comment, commenter, reg_date, up_date ..

복잡한 XML(데이터 교환할 때 데이터보다 태그가 더 많음)보다 사용하기 더 편함 HTTP가 TEXT기반 프로토콜이기 때문에 "전송"하려고 직렬화하는 것이다. 기본적으로 동기 이지만 비동기로 하여 효율을 높인다 웹페이지 전체를 업데이트하는 것은 비효율적이기 때문에 일부 데이터만 업데이트 하는 것을 비동기라고 한다. 우리는 게시판 덧글 달때, 바뀐 덧글만 가져오기 위해 사용할 것이다. 왼쪽 그림이 동기 통신 / 오른쪽 그림이 비동기 통신 동기 통신은 요청을 하면(함수 호출) 서버가 처리하고, 응답 올 때까지 계속 기다려야 한다. 응답이 와야 다른 작업을 할 수 있다. 비동기 통신은 요청을 보내놓고 다른 작업을 할 수 있다. 언제 처리가 끝났는지 알 수 있는 방법은 콜백함수를 사용한다. jQuery로 비동기..

1.검색할 대상을 뭐로 선택하느냐에 따라 쿼리가 달라지므로 동적쿼리 2.페이지 이동 처리 sql을 공통부분으로 만들고, include로 공통부분을 받아온다. A = 내용 + 제목 T = 제목 W = 작성자 if문으로 하기엔 셋 다 조건에 맞을 수 있으므로 우리가 지금 개발하려는 기능에는 choose가 낫다 %를 와일드카드라고 하는데, 여러 글자를 뜻함(0+, 0이거나 더 많거나 - title도 되고 title1도 된다.) _는 한글자를 뜻함 (title_일때, title은 안되고 title1은 된다.) bno가 여러개일 때, foreach로 배열을 만들어서 구분자를 콤마로 해서 값들을 다 구성해주는 것 (where bno in (1,2,3) 이라는 sql절도 있지만 훨씬 더 많을 때 사용) boardMa..

먼저 boardList.jsp에 글쓰기 버튼을 만든다. 글쓰기 onclick은 버튼을 클릭했을 때 발생하는 이벤트, 원래는 호출될 함수를 지정해줘야 하지만 함수 안에 들어갈 문장만 넣은 것이다.(함수의 내용이 짧을 때만) location.href는 주소창에 주소(뒤에 적힌 주소)를 적고 이동하기 버튼을 누르는 것과 같다. @GetMapping("write") public String write(Model m){ m.addAttribute("mode","new"); //mode에 값을 new로 준다. return "board"; //읽기와 쓰기에 사용되는데, 쓰기에 사용할때는 mode=new로 준다 -> jsp가 mode를 확인하고 알맞게 응답을 하도록 준다 } board.jsp mode의 값에 따라서, ..

기능별 URI 정의 URL - 리소스 경로 URN - 리소스의 유일한 이름 위의 두개를 총칭하는 이름이 URI(Identifier 유일한 이름 명칭) URL : 전체 경로일 경우 URL의 일부만 적을 경우 : URI BoardController.java @Controller @RequestMapping("/board") public class BoardController { @Autowired BoardService boardService; @GetMapping("/read") public String read(Integer bno,Model m){ //읽어온 것을 board.jsp(view)로 전달할 모델 try { BoardDto boardDto = boardService.read(bno); // m..