직접 구현한 MVC 프레임 워크와 스프링 MVC 비교스프링 MVC에서 핸들러매핑, 뷰리졸버 사용 확인컨트롤러 사용시에 인터페이스 방식과 애노테이션 방식을 살펴볼 수 있음5. 스프링 MVC 구조 이해 1) 스프링 MVC 전체 구조 직접 만든 프레임워크 -> 스프링 MVC 비교FrontController -> DispatcherServlethandlerMappingMap -> HandlerMappingMyHandlerAdapter -> HandlerAdapterModelView -> ModelAndViewviewResolver -> ViewResolver(인터페이스)MyView -> View(인터페이스)스프링 MVC도 마찬가지로 프론트 컨트롤러 패턴을 사용하고 있으며 DispatcherServlet이 그 ..
5가지 버전프론트 컨트롤러 도입(v1), View분리(v2), Model 추가(v3), 단순하고 실용적인 컨트롤러(v4), 유연한 컨트롤러(v5)로 단계별로 만들어 본다. 4. MVC 프레임워크 만들기여기서는 기존 회원관리 애플리케이션의 단점을 한 단계씩 버전업하면서 단계별로 만들어본다. 버전별로 먼저 어떻게 변경되는지 간단하게 정리하면 다음과 같다.v1 : 프론트 컨트롤러라는 것을 도입한다. 말 그대로 기존 컨트롤러에 앞서 동작하는 부분으로, 요청에 맞는 컨트롤러를 호출해주는 역할을 한다.v2 : v1에서 반복되는 뷰 로직이 있는데 이를 분리해준다.v3 : Model을 추가해서 컨트롤러에 반복되는 서블릿 종속성을 제거하고 뷰 이름 중복도 제거한다.v4 : v3과 비슷하지만 컨트롤러 구현부분에서 Mode..
1.StringBuilder().reverse() 사용 import java.util.ArrayList; import java.util.Scanner; public class Main { public ArrayList solution(int n, String[] str) { //string을 원소로 갖음 ArrayList answer=new ArrayList(); for (String x : str) { String tmp=new StringBuilder(x).reverse().toString(); //x라는 단어 reverse하고 다시 String화함 answer.add(tmp); //.add : arraylist에 추가하는 것 } return answer; } public static void mai..
1. split() 사용 import java.util.Scanner; public class Main { public String solution(String str) { String answer=""; //문장에서 가장 긴 단어 int m = Integer.MIN_VALUE; //음수가 아니기에 0으로 초기화해도 됨 String[] s = str.split(" "); for(String x : s){ int len=x.length(); if(len>m){ m=len; answer =x; } } return answer; } public static void main(String[] args){ Main T = new Main(); Scanner kb = new Scanner(System.in); St..
3.서블릿, JSP, MVC 패턴1) 회원 관리 웹 애플리케이션 요구사항 서블릿만으로 개발 (자바 안에 HTML 작성)JSP로 개발 (JSP에 자바코드 섞어 작성)MVC 패턴 사용요구 사항username, age 입력 가능저장 누르면 회원관리 DB에 데이터 저장저장된 회원 정보를 목록 형태로 볼 수 있음회원 도메인 모델[Member.java]회원 username, age 저장하고 가져올 수 있는 도메인 모델-id는 Member를 회원 저장소에 저장하면 회원 저장소 할당됨package hello.servlet.domain.member;import lombok.Getter;import lombok.Setter;@Getter @Setterpublic class Member { private Long id..
시간 복잡도 : 주어진 문제를 해결하기 위한 연산 횟수 유형 빅 -오메가 : 최선일 때의 연산 횟수를 나타낸 표기법 빅 -세타 : 보통일 때의 연산 횟수를 나타낸 표기법 빅 -오 : 최악일 때의 연산 횟수를 나타낸 표기법 (코테에서는 항상 빅오를 염두에 두어야함) public class timeComplexityExample1 { public static void main(String[] args) { //1~100 사이 값 랜덤 선택 int findNumber = (int)(Math.random() * 100); for(int i = 0; i