목록분류 전체보기 (783)
쌓고 쌓다
URI (Uniform Resource Identifier) 리소스를 식별하는데 사용되는 문자열이다. 위치, 이름(식별자)으로 우린 리소스를 식별할 수 있다. 예를 들어 친구 이승민한테 연락을하고싶다고 하자. 이름 이승민이나 주소 111-11 1동 1호로 연락을 할 수 있다. 즉, 이름과 위치 어느것을 사용해도 또는 둘다를 사용해도 이승민을 식별할 수 있다. 이것이 URI이다. 이름(식별자), 주소로 식별할 수 있다. URL (Uniform Resource Locator) 마찬가지로 문자열인데 위치(주소)만을 참조한다. 주소 111-11 1동 1호 위치로 친구 이승민을 식별할 수 있다. 이것이 URL이다. 주소(위치)로 식별할 수 있다. => URL은 URI의 부분집합(서브셋)이다. URL은 위치로 식별..

기존의 MVC 패턴에서 공통 로직이 필요하면 공통 로직을 실행하고 별도의 로직을 수행하게 해야한다. 공통된 입구가 없기에 모든 입구마다 공통 로직을 깔아줬음. 프론트 컨트롤러 패턴 프론트 컨트롤러 패턴으로 입구를 하나로 만들어 공통 로직을 수행할 수 있다. 또한 프론트 컨트롤러의 뒤에 있는 나머지 컨트롤러는 요청에 맞는 컨트롤러를 서블릿을 사용하지 않고 호출할 수 있다. 스프링 웹 MVC의 핵심 "DispatcherServlet"도 FrontController 패턴으로 만들어져 있다고 한다. 프론트 컨트롤러 V1 만들어볼 프론트 컨트롤러 구조는 위와 같다. 프론트 컨트롤러로 들어온 요청 URL에 따라 컨트롤러를 호출하여 응답한다. Controller 인터페이스 public interface Control..
https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 큰 수의 범위까지 소수를 구할때 에라토스테네스의 체 알고리즘을 사용한다. https://non-stop.tistory.com/241 numbers의 각 문자로 만들 수 있는 문자열을 다 만들어본다. bruete Force 방식을 사용한다. 이때 visit 배열을 이용해 문자를 붙일지 판단한다. 문자는 str에 붙이고 떼며 수를 만들어 소수인지 확인한다. numbers의 길이가 최대 7이..
서블릿은 Controller로, JSP는 View로 사용한다. Model은 HttpServletRequest 객체를 사용한다. 회원 저장 formController @WebServlet(name="mvcMemberFormServlet", urlPatterns = "/servlet-mvc/members/new-form") public class MvcMemberFormServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String viewPath = "/WEB-INF/view..

DB 테이블 변경 ALTER TABLE comment ADD COLUMN parent_comment_id int; ALTER TABLE comment ADD COLUMN is_parent int not null; 댓글과 대댓글 구별은 컬럼 is_parent로 이뤄진다. is_parent가 1이면 부모 댓글로 일반 댓글이며 0이면 대댓글로 구분한다. 부모 댓글은 자신의 id를 parent_comment_id로 가지며 대댓글은 부모 댓글의 id를 가진다. 기존의 DB 데이터들은 아래의 쿼리로 값을 갱신해주자. UPDATE comment AS A INNER JOIN comment AS B ON A.id = B.id SET A.parent_comment_id = A.id; UPDATE comment SET is..

대댓글 구현중에 대댓글 더보기 버튼을 사용자에게 제공하는 기능을 만들고 있었다. 더 가져올 데이터가 없다면 더보기 댓글을 없애고싶었다. 대댓글 더보기할때 대댓글 총 개수를 넘게된다면 더보기 기능은 없어져야한다. 그러기위해서는 대댓글 데이터를 JSON으로 받아올때 해당 댓글의 대댓글의 총 개수가 필요했다. 기존의 대댓글 데이터를 서버로부터 받아오면 페이징처리된 대댓글(Page)의 JSON이였지 내가 필요한 정보를 더 담아내지 못했다. 아래의 코드처럼 작성한다면 JSON에 추가 정보를 담아 응답을 내줄 수 있다. public Map findReply(Long parentCommentId, int page) { Sort sort=Sort.by(Sort.Order.desc("regDate"), Sort.Or..

MVC 패턴 기존에 서블릿으로만 웹 애플리케이션을 만들자니 자바 코드로 HTML을 생성하기 쉽지 않았고 JSP로 HTML에 자바 코드를 넣자하니 코드의 절반이 비즈니스 로직이고 절반이 View를 위한 코드였다. 그래서. 비즈니스 코드는 서블릿에서 집중하고 View를 위한 코드는 JSP에서 집중하는 MVC 패턴이 등장했다. Model View Controller 컨트롤러 사용자의 HTTP 요청을 받아서 파라미터를 검증하고 비즈니스 로직을 수행한다. 올바르지 않다면 400 오류등을 내줄 수 있다. 비즈니스 로직 결과로 받은 결과를 모델에 담는다. 모델 뷰에 출력할 데이터를 보관한다. 뷰가 필요한 데이터를 모델에 담아 뷰에 전달한다. 뷰 모델에 담긴 데이터를 통해 HTML을 생성한다. 4: 뷰 로직으로 제어권..

댓글 작성 방식을 중간에 Ajax로 바꿔보느라 현재. 클라이언트에서 전송하는 데이터의 형태가 2가지가 존재했다. 일반 댓글 작성은 Ajax로 JSON 형태 데이터를 보내 처리하는 방식이고 현재 연구중인 답글은 form으로 보내는 형태이다. 이 form, JSON 두 방법이 모두 댓글 작성 가능하게 하는 방법이 궁금해서 연구해봤다. 현재 구현된 댓글 작성에는 아래와 같이 JSON 데이터를 받아 저장하는 방식이다. @PostMapping(value = "/comment/write") @ResponseBody public Comment commentWrite(@RequestBody Comment comment) { posterService.incrementCommentCnt(comment.getPno()); ..