2023/05

· DEV/Java
Expression Language EL은 JSP에서 Java 코드에 대한 보다 간단한 대안을 제공하는 Java 표현 언어의 약자입니다. EL을 사용하면 JavaBeans 구성 요소에 저장된 애플리케이션 데이터에 더 쉽게 액세스할 수 있습니다. 예제로 알아보자 아래 User 클래스를 생성하고, 서블릿에 요청 속성으로 추가해봅시다 public class User { private String name; private String email; // constructor, getters, setters... } User user = new User(); user.setName("John Doe"); user.setEmail("john@example.com"); request.setAttribute("user"..
· DEV/Java
Servlet의 상태 정보 저장 Servlet의 상태 정보는 크게 4가지가 있다. 어플리케이션, 페이지 컨텍스트, request, 세션 저장소인데, 공부하면서 브라우저에서 쓰이는 것도 동일하지 않나 싶었다 1. 페이지 컨텍스트(Page Context) 현재 페이지의 지속 시간 동안 사용 가능한 저장 영역입니다. 페이지 내에서 여러 번 액세스되는 데이터를 저장하는 데 사용되지만 페이지를 넘어 지속될 필요는 없습니다. 페이지 컨텍스트에 저장된 데이터는 다른 페이지나 구성 요소에서 사용할 수 없습니다. 이는 저장소들 중 가장 좁은 범위이며 저장된 데이터는 현재 페이지 처리가 완료되면 지워집니다. 요청 저장소(Request) 이 저장소 영역은 현재 HTTP 요청 기간 동안 사용할 수 있습니다. 서블릿에서 JSP..
· DEV/Java
Servlet 서블릿은 요청-응답 프로그래밍 모델을 통해 액세스되는 애플리케이션을 호스트하는 서버의 기능을 확장하는 데 사용되는 Java의 클래스입니다. 일반적으로 웹 서버에서 호스팅하는 응용 프로그램을 확장하는 데 사용됩니다. Servlet Lifecycle 서블릿의 수명 주기는 서블릿 컨테이너에 의해 제어되며 다음 단계로 구성됩니다. 아래 과정은 컨테이너가 자동으로 호출을 해주기 때문에 개발자들은 필요한 것들을 채워주기만 하면 됩니다 로드 및 인스턴스화 서블릿 컨테이너는 시작하는 동안 또는 첫 번째 요청이 있을 때 서블릿 클래스를 로드합니다. 서블릿 인스턴스는 Class 클래스의 newInstance() 메서드를 사용하여 생성됩니다. 초기화 서블릿 컨테이너는 init() 메서드를 호출하고 Servle..
· DEV/Java
Spring MVC Spring MVC는 Spring Framework의 일부로서 웹 애플리케이션을 개발하기 위한 프레임워크입니다. MVC는 Model-View-Controller의 약자로, 소프트웨어 디자인 패턴 중 하나입니다. 이 패턴은 애플리케이션의 논리를 쉽게 이해하고, 개발하고, 유지보수하게 해주는 유용한 구조를 제공합니다. Spring의 View Rendering Spring의 View 렌더링하는 방법을 알아보겠습니다. 먼저 모델을 생성하고 채웁니다. 이 과정에서 애플리케이션에서 사용할 데이터를 수집하고 구성합니다 @Controller public class MyController { @RequestMapping("/somePath") public String handleRequest(Mode..
· DEV/Java
Java 런타임에 매개변수 이름 얻는 방법 Reflection API Java에서 Reflection API는 프로그램이 컴파일 시점에 특정 타입을 알지 못해도 런타임에 객체를 조작할 수 있게 해줍니다. 이는 런타임에 클래스, 인터페이스, 필드, 메소드를 조사할 수 있게 하여, 컴파일 시점에 인터페이스, 필드, 메소드 등의 이름을 알지 못해도 됩니다. 매개 변수와 관련하여 Reflection API를 사용하면 런타임에 메소드 매개 변수를 조사할 수 있습니다. 다음은 예시입니다: Method[] methods = MyClass.class.getMethods(); for (Method method : methods) { Parameter[] parameters = method.getParameters(); ..
· DEV/Java
Spring의 코드 분리 단일 책임 원칙(Single Responsibility Principle, SRP)에 따라서 주어진 예제를 리팩토링 하면서 관심사 분리 즉 코드 분리를 해보자 코드 분리의 기준은 아래와 같다. 관심사 분리: 각 부분이 서로 다른 목적을 가진 코드로 분리 변하는 것과 변하지 않는 것의 분리: 이는 코드 내에서 변동성이 큰 부분과 그렇지 않은 부분을 분리하는 것을 의미합니다 일반적으로 자주 변경되는 로직은 분리하여 관리함으로써 코드의 유연성을 높이고, 유지보수를 용이하게 합니다. 반대로 변동성이 적은 부분은 안정적인 기능을 제공하는 코드로서 그 자체로 응집력을 갖도록 관리합니다. 공통 코드와 중복 코드의 분리: 코드 베이스 내에서 반복적으로 사용되는 부분(공통 코드)이나 같은 기능을..
단일 책임 원칙(Single Responsibility Principle, SRP) - SOLID 원칙 중 하나로, 클래스는 오직 하나의 책임만 가져야 한다 단일 책임 원칙은 객체 지향 프로그래밍에서 SOLID 원칙 중 하나입니다. 이 원칙에 따르면, "클래스는 오직 하나의 책임만 가져야 한다"는 것입니다. 가장 쉽게 볼 수 있는 예시로 백엔드 개발을 할 때 Service와 Repository를 구분해서 개발을 하는 것입니다 Service는 비즈니스 로직, Repository는 데이터베이스 접근에 대한 책임을 가집니다. 그 결과, 계층 간 데이터 변경과 유지 보수의 용이함을 가지죠 단일 책임 원칙의 이해 만약 클래스나 메소드가 너무 많은 일을 담당하고 있다면, 그 기능을 수정하거나 변경하는 데 필요한 노..
프로그래밍 언어론 - 선언 블록 영역 선언은 변수에 이름과 데이터 타입 등의 속성을 부여하는 문장이다 선언의 종류 명시적 선언 : 선언문을 사용하여 변수 이름을 나열하고, 이들 속성에 부여하는 방법 예약어 int를 사용하여 변수 x의 데이터 유형을 명시적으로 지정합니다. 예: int x; 묵시적 선언 : 실행 시간 중에 일어나거나 프로그램 실행 과정에서 변경 되는 바인딩 FORTRAN은 변수 이름이 선언문 없이 사용되면 선언된 것으로 간주합니다. 일반적으로 변수 이름이 ‘I’, ‘J’, ‘K’, ‘L’, ‘M’ 또는 'N’으로 시작하면 정수 유형으로 간주됩니다. 그렇지 않으면 실제 유형으로 간주됩니다. 블록 일련의 문장 집합으로 자체적인 선언을 가질 수 있는 프로그램 단편 영역 이름의 사용이 허락되고 있..
프로그래밍 언어론 - 바인딩 바인딩: 속성을 이름과 연결하는 프로세스 결속시간에 따른 결속분류 int x; // Statically bind the type 'integer' to the name x int* ptr = new int; // Dynamically bind the allocated storage to y 세분화 된 바인딩 시간 언어 정의 시 바인딩(defining-time): 언어 키워드 및 구문 규칙을 정의합니다. 변환기를 구현할 때 만든 바인딩(구현 시간): 언어 구성을 기계 명령어 또는 이에 상응하는 저수준 표현과 연결합니다. 메모리 레이아웃 및 데이터 구조를 정의합니다. 소스 프로그램을 번역할 때 만들어진 바인딩(번역 시간): 외부 기호 및 함수에 대한 참조를 해결합니다. 변수 및 ..
프로그래밍 언어론 - 변수 변수는 이름, 주소, 값, 타입, 영역, 속성들이 모여서 변수의 개념이 형성된다. 이름(식별자, identifier) : 프로그램에서 어떤 개체를 식별하기 위해서 사용되는 문자 스트링 예약어(reserved word)는 이름으로 사용될 수 없음 미리 정의된 이름(predefined name)은 미리 정의된 의미를 갖고 있음 사용자에 의해 다시 정의되어 사용될 수 있음 주소 : 변수의 값이 저장될 메모리 주소 값 : 변수의 주소에 저장된 내용 변수의 값은 배정문에 의해 부여 int x = 5; // 'x' is an l-value, as it can be assigned a value int y = x + 2; // 'x + 2' is an r-value, as it is a t..
berom
'2023/05 글 목록 (4 Page)