반응형 Develop237 [Java] Collections와 Map 코딩 테스트를 풀때 효율성 문제에서 제일 헷갈리는게 Collections 같다. '자바 성능 튜닝 이야기' 책에 의하면 각 클래스의 효율성 자체는 크게 나지는 않지만... 어느 상황에 어떤 컬렉션을 쓰는 것이 적절한지 헷갈리니까 정리해두겠다. 이 글은 컬렉션 프레임워크를 대충 쓰고는 있었지만 서로의 차이점을 확실히 알고 싶은 사람에게 추천한다. 사용법이 아닌 개념과 이해를 위한 설명을 위주로 작성한다. 컬렉션 프레임워크(Collection Framework)란? 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화해 클래스로 구현한 것 Collection Framework의 계층 Collection fra.. 2021. 5. 21. [MVC] 어댑터 추가 110v 코드에는 220v 코드를 꽂을 수 없다. 어댑터를 사용하면 220v 코드도 110v에서 사용할 수 있도록 해준다. 이처럼 코드에서도 호환을 도와주는 어댑터를 추가할 수 있다. 자세한 설명은 '어댑터 패턴'에 대해 공부해보길 바란다. V3 Controller 활용하기 먼저는 v3에서 만든 컨트롤러를 사용할 수 있도록 하겠다. v3 코드: https://yeonyeon.tistory.com/105 [MVC] Model 분리 현재 코드의 문제점 컨트롤러는 매번 사용하지도 않는 HttpServletRequest, HttpServletResponse를 받는다. "/WEB-INF/views/new-form.jsp" 같은 경로에서 "/WEB-INF/views" 같이 경로가 반복된다. 현재 서블릿에.. yeo.. 2021. 5. 19. [Eclipse] 프로젝트 유형 변경하기 Eclipse에 import한 프로젝트가 사용하는 것은 Gradle, Maven, Spring 등등 다양하다. 하지만 Eclipse가 자동적으로 Java Project로만 인식해서 프로젝트 전체에 빨간 X에 뜨는 경우가 있다. 잘 모를때는 원하는 유형의 프로젝트를 새로 만들어서 파일 내용을 복붙했으나... SVN이나 Git같은 도구를 써서 여러 사람과 함께 사용하는 경우엔 새로 만들수도 없다ㅠㅠ 알고보니 프로젝트 유형을 바꾸는건 정말 어렵지 않다. 단, 플러그인은 이미 설치되어 있다는 가정 하에 진행해야 한다. ex: Gradle Project일 경우, Gradle 관련 플러그인이 이미 설치되어있어야 함 프로젝트 우클릭 - Configure - 원하는 버전 선택 ex: Gradle Project로 변경하.. 2021. 5. 19. [MVC] Controller 단순화 v3까지 설계한 것은 구조적으로 좋은 설계이다. 하지만 개발자들 입장에서는 항상 ModelView 객체 생성 반환해야해서 좀 번거롭다. 이를 좀 더 단순화하기 위해 코드를 변경해보겠다. 이전 코드: yeonyeon.tistory.com/105 [MVC] Model 분리 현재 코드의 문제점 컨트롤러는 매번 사용하지도 않는 HttpServletRequest, HttpServletResponse를 받는다. "/WEB-INF/views/new-form.jsp" 같은 경로에서 "/WEB-INF/views" 같이 경로가 반복된다. 현재 서블릿에.. yeonyeon.tistory.com 이번 글은 코드 전문을 공개하기보다 어느 부분이 어떻게 바뀌었는지 위주로 짚어보겠다. (코드 전문: https://github.co.. 2021. 5. 13. [MVC] Model 분리 현재 코드의 문제점 컨트롤러는 매번 사용하지도 않는 HttpServletRequest, HttpServletResponse를 받는다. "/WEB-INF/views/new-form.jsp" 같은 경로에서 "/WEB-INF/views" 같이 경로가 반복된다. 현재 서블릿에서 종속성을 제거하기 위해 Model과 View 이름을 전달하는 객체 ModelView를 생성해보겠다. ModelView는 MyView와 마찬가지로 다른 버전에서도 계속 사용하기 위해 상위 폴더에 둔다. ModelView @Getter @Setter public class ModelView { private String viewName; private Map model = new HashMap(); public ModelView(String.. 2021. 5. 11. [MVC] View 분리 지난 글 까지는 MVC 패턴을 분리하고, Front Controller를 분리했다. 이제 View를 분리하는 작업을 해보겠다. 프로젝트 구조는 다음과 같다. MyView는 이후 다른 버전에서도 사용할 것이므로 v2보다 상단인 frontcontroller에 위치 시켰다. MyView public class MyView { private String viewPath; public MyView(String viewPath) { this.viewPath = viewPath; } public void render(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { RequestDispatcher dispatc.. 2021. 5. 10. [MVC] 프론트 컨트롤러 패턴 기존의 패턴을 설명하자면 아래 그림과 같다 각 클라이언트들은 Controller A, B, C에 대해 각각 호출한다. 공통 코드들은 별도로 처리되어 있지 않고 각 Controller에 포함되어 있다. 하지만 프론트 컨트롤러 패턴을 도입한다면? 각 클라이언트들은 Front Controller에 요청을 보내고, Front Controller은 각 요청에 맞는 컨트롤러를 찾아서 호출시킨다. 공통 코드에 대해서는 Front Controller에서 처리하고, 서로 다른 코드들만 각 Controller에서 처리할 수 있도록 한다. 장점을 정리해보자면, 공통 코드 처리가 가능 (★중요) Front Controller 외 다른 Controller에서 Servlet 사용하지 않아도 됨 스프링 웹 MVC의 핵심도 위 같은.. 2021. 5. 10. [MVC패턴] 회원 관리 웹 애플리케이션 예제에 들어가기 앞서 MVC 패턴에 대해 간단히 설명하겠다. 프로젝트 구성 요소를 Model, View, Controller 3가지로 나눈 패턴 Model: View에 출력할 데이터 담아두기 View: Model에 담긴 데이터를 사용해 화면 그려내기 Controller: HTTP 요청을 받아 파라미터 검증 및 비즈니스 로직 실행. View에 전달할 결과 데이터를 Model에 담기 기본적으로 나는 일단 코딩하고 개념을 찾아보는 편이라... 자세한 설명은 생략한다. 이후에 MVC 패턴에 대해 따로 공부하는 것을 추천한다. 회원 관리 웹 애플리케이션의 요구사항 회원 저장 회원 목록 조회 회원 관리 웹 애플리케이션 코드 비교 Servlet: yeonyeon.tistory.com/100 JSP: yeonyeon... 2021. 5. 10. [JSP] 회원 관리 웹 애플리케이션 회원 관리 웹 애플리케이션의 요구사항 회원 저장 회원 목록 조회 회원 관리 웹 애플리케이션 코드 비교 Servlet: yeonyeon.tistory.com/100 MVC 패턴: yeonyeon.tistory.com/102 먼저 JSP 라이브러리 추가가 필요하다. build.gradle에 다음을 추가하고 gradle project refresh를 한다. implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'javax.servlet:jstl' webapp에 jsp/members 폴더를 만들어 jsp 파일들을 넣을 것이다. new-form.jsp username: age: 전송 name, age를 입력해 button을 누르면,.. 2021. 5. 7. 이전 1 ··· 16 17 18 19 20 21 22 ··· 27 다음 반응형