Language (102) 썸네일형 리스트형 [Spring] Controller와 Rest Controller 차이 Controller의 역할 및 특징 역할뷰(View)를 반환하는 컨트롤러.주요 특징주로 HTML, JSP 같은 뷰 페이지를 반환@RequestMapping 또는 @GetMapping, @PostMapping 등의 어노테이션을 사용해 HTTP 요청을 매핑Model 객체를 이용하여 데이터와 뷰를 연결반환값이 문자열(String)일 경우 기본적으로 ViewResolver가 실행되어 해당 문자열을 뷰 이름(view name)으로 간주하고, 뷰를 렌더링@Controllerpublic class ExampleController { @GetMapping("/hello") public String hello(Model model) { model.addAttribute("message", "Hel.. [Spring] DispatcherServlet의 개념과 흐름 DispatcherServlet이란? Spring Framework의 핵심 구성 요소로 Front Controller 패턴을 구현한 클래스이를 통해 Spring MVC 애플리케이션의 모든 HTTP 요청이 중앙에서 처리 DispatcherServlet의 장점중앙 집중화모든 요청 처리를 한 곳에서 관리하므로 유지보수와 확장성이 높음유연성다양한 핸들러 매핑, 인터셉터, 뷰 리졸버를 설정하여 유연하게 동작 가능다양한 기능 제공요청/응답 처리 뿐 아니라 필터링, 예외 처리, 국제화, 데이터 바인딩 등을 제공DispatcherServlet의 동작 과정클라이언트의 모든 요청을 DispatcherServlet이 수신요청 정보에 대해 HandlerMappinng에 위임하여 처리할 Handler(Controller)를 찾.. [공통처리] Filter, Interceptor, AOP 차이점 및 흐름과 역할 공통 처리개발을 하다보면 다음과 같이 공통적으로 적용되는 부분들이 존재로그인 세션 유지권한 체크(Spring Security 등)XSS(roos site sprict)로깅페이지 인코딩 처리이러한 공통 기능들은 모든 페이지에 똑같은 코드를 넣게 되면 중복 코드를 초래하게 되는데 이는 가독성이 좋지 못할 뿐더러 유연성과 유지보수 측면에서도 매우 좋지 않음따라서 공통된 코드들은 따로 분리하여 관리하는 것이 매우 효율적인데 공통 코드를 처리하는 방법은 3가지가 존재하는데 각각 적용되는 위치가 다름FilterIntercepterAOP요청에 따른 흐름Filter : Servlet Container(Tomcat) 영역 = 서블릿 레벨Interceptor, AOP : Spring Container 영역 = 스프링 레벨.. [AOP] AOP란? AOP(Aspect Oriented Programming)의 개념관점 지향 프로그래밍어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나눠보고 그 관점을 기준으로 각각 모듈화핵심적인 관점 : 개발자가 적용하고자 하는 핵심 로직부가적인 관점 : 핵심 로직을 수행하기 위해 필요한 DB 연결(JDBC), 로깅, 파일 입출력 등 AOP의 등장 배경회사 상사가 회원 가입 하는 시간을 측정하는 로그를 남겨 달라고 지시코드 수정 전public void join(JoinRequest joinRequest) { memberRepository.save(joinRequest.toMember());}코드 수정 후public void join(JoinRequest joinRequest) { long begin = Syst.. [GC] 가비지 컬렉터의 개념, 원리, 알고리즘 가비지 컬렉터(Garbage Collector)와 가비지 컬렉션(Garbage Colletion)가비지 컬렉터 (Garbage Collector)정의 : 메모리 관리를 담당하는 시스템의 구성 요소역할 : 메모리에서 더 이상 사용되지 않는 객체(즉, 가비지)를 찾아 제거하여 메모리를 회수실행 방식 : 이 작업은 자동으로 수행되며, 프로그래머가 직접 객체의 메모리를 해제할 필요 없이 가비지 컬렉터가 주기적으로 메모리에서 사용되지 않는 객체를 정리가비지 컬렉션 (Garbage Collection)정의 : 메모리 관리 기술 중 하나로, 가비지 컬렉터에 의해 수행되는전체적인 프로세스역할 : 사용되지 않는 객체를 식별하고, 이를 메모리에서 제거하는 일련의 과정→ 이 과정에는 객체 추적, 참조 카운트 검사, 메모리 .. [Java] Java의 컴파일 과정 자바의 컴파일 과정 개발자가 자바 클래스 파일(.java) 작성소스 파일을 자바 바이트 코드(.class 파일)로 컴파일JVM(자바 가상 머신) = 이해 가능컴퓨터 = 아직 이해 불가바이트 코드를 클래스 로더(Class Loader)에게 전달클래스 로더는 동적 로딩(Dynamic Loading)을 담당하여 프로그램 실행 중 필요한 클래스 파일들을 로딩 및 링크하여 JVM 메모리(런타임 데이터 영역, Runtime Data Area)에 적재클래스 로더(Class Loader) 세부 동작로드 : 바이트 코드(클래스 파일)를 가져와서 JVM의 메모리에 로드검증 : 클래스가 자바 언어 명세(Java Language Specification) 및 JVM 명세에 맞는 지 검사하여 안전한 코드만이 실행되도록 함준비 .. [JVM] JVM의 개념과 필요한 이유 JVM(Java Virtual Machine)자바 프로그램을 실행하기 위한 가상 머신하드웨어 및 운영체제에 구애받지 않고 자바 프로그램이 실행 가능자바의 "Write Once, Run Anywhere(한 번 쓰면, 어디서든 동작)" 개념을 가능하게 만드는 핵심 요소JVM의 역할과 필요성플랫폼 독립성 제공자바 프로그램은 작성되면 바이트코드(.class 파일)로 컴파일되는데, 이 바이트코드는 특정 운영체제나 하드웨어에 종속되지 않음JVM은 이 바이트코드를 해당 시스템에서 이해할 수 있는 기계어로 변환하여 실행하기 때문에 자바 프로그램은 어떤 운영체제에서든 동일하게 작동 가능플랫폼 독립성이 자바의 큰 장점 중 하나이며 JVM이 이를 가능하게 해줌메모리 관리와 성능 최적화JVM은 자동으로 메모리를 관리하는 가비.. [OOP] 객체지향 프로그래밍의 개념과 특징 객체 지향 프로그래밍(Object Oriented Programming)이란?프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고, 그 객체들 간의 유기적인 상호 작용을 통해 로직을 구성하는 프로그래밍 방법객체 지향 프로그래밍의 장점과 단점장점코드 재사용 용이 클래스와 객체를 재사용하거나 상속을 통해 기존 코드의 기능을 확장하는 것이 가능또한, 다형성을 통해 동일한 인터페이스를 사용하여 다양한 객체에 대해 작업을 수행 가능유지 보수가 쉬움절차 지향 프로그래밍에서는 코드를 수정해야할 때 일일이 찾아 수정해야하는 반면 객체 지향 프로그래밍에서는 캡슐화와 모듈화 덕분에 클래스와 객체 단위로 변경을 적용할 수 있어 유지보수가 상대적으로 용이대형 프로젝트에 적합클래스 단위로 모듈화시켜서 개발.. 이전 1 2 3 4 5 6 ··· 13 다음