was 가 하는 역할 (톰캣)

WAS(Web Application Server)는 웹 애플리케이션을 실행하기 위한 서버 환경을 제공하는 미들웨어 소프트웨어입니다. WAS는 다음과 같은 역할을 합니다.

  1. 웹 서버 기능: 클라이언트로부터 요청된 웹 페이지나 파일을 전송하는 정적 파일 처리 기능을 제공합니다.
  2. 웹 애플리케이션 서비스 기능: 웹 애플리케이션을 실행하기 위한 여러 가지 기능을 제공합니다. 예를 들어, JSP, Servlet, EJB 등을 지원하며, 데이터베이스 연동, 트랜잭션 관리, 보안, 세션 관리, 메시징 등의 기능을 제공합니다.
  3. 분산 트랜잭션 관리: WAS는 여러 개의 서버에서 실행되는 웹 애플리케이션에서 발생하는 트랜잭션을 관리합니다. 이를 통해 데이터 일관성과 안정성을 유지합니다.
  4. 클러스터링 기능: 여러 대의 서버를 하나의 클러스터로 구성하여 부하 분산과 고가용성을 제공합니다.
  5. 보안 기능: WAS는 웹 애플리케이션의 보안을 위해 인증, 권한 부여, 암호화 등의 기능을 제공합니다.
  6. 성능 향상 기능: WAS는 캐싱, 프리컴파일링, 스레드 풀링 등의 기능을 제공하여 웹 애플리케이션의 성능을 향상시킵니다.

 

java 
new 옆에는 생성자 메소드가 온다.

IOC 개념

IOC (Inversion of Control)은 객체지향 프로그래밍에서 사용되는 설계 원칙 중 하나입니다. 객체의 생성 및 관리에 대한 제어 권한을 개발자에서 컨테이너로 넘기는 것을 말합니다.
일반적인 객체지향 프로그래밍에서는 개발자가 객체를 생성하고 객체 간의 관계를 설정합니다. 하지만, 이렇게 하면 객체 간의 결합도가 높아지고 유연성이 떨어지는 단점이 있습니다. 또한, 객체를 생성하고 관리하는 코드가 중복되는 경우가 많기 때문에 유지보수성도 낮아집니다.
이러한 문제를 해결하기 위해 IOC 컨테이너를 이용합니다. IOC 컨테이너는 개발자가 직접 객체를 생성하고 관리하는 것이 아니라, 객체의 생성과 관리를 컨테이너가 대신 수행합니다. 이를 위해, 컨테이너는 객체를 생성하고 객체 간의 관계를 설정하는 일을 담당합니다.
IOC 컨테이너는 객체의 생성과 관리를 위해 두 가지 방법을 사용합니다. 첫 번째는 DI (Dependency Injection)입니다. DI는 객체 간의 의존성을 컨테이너가 자동으로 주입하는 방법입니다. 두 번째는 DL (Dependency Lookup)입니다. DL은 객체를 사용할 때마다 컨테이너에게 요청하여 객체를 얻는 방법입니다.
Spring Framework에서는 DI를 기반으로 한 IOC 컨테이너를 제공하며, 이를 이용하여 객체의 생성과 관리를 수행합니다. 이를 통해 유연성이 높은 코드를 작성할 수 있으며, 객체 간의 결합도를 낮출 수 있습니다.

 

AOP 개념

AOP (Aspect-Oriented Programming)은 객체 지향 프로그래밍 패러다임을 보완하는 프로그래밍 기술 중 하나입니다.

AOP는 크로스컷팅 컨서닝(cross-cutting concerns)을 처리하기 위해 사용됩니다. 이는 프로그램 내에서 여러 모듈에서 공통적으로 사용되는 기능들을 말합니다. 예를 들면 로깅, 보안, 트랜잭션 처리 등이 있습니다. 이러한 공통적인 기능들은 모듈들 간에 중복되어 사용될 가능성이 높기 때문에, 코드의 재사용성과 유지보수성을 떨어뜨립니다.

AOP는 이러한 문제를 해결하기 위해 관심사를 분리하는 프로그래밍 기법입니다. 이를 위해 관점(aspect)을 정의하고, 관심사를 수행하는 코드를 aspect로 분리하여 모듈들과 독립적으로 적용합니다. 이를 통해 모듈들의 코드를 간결하게 유지할 수 있으며, 코드의 재사용성과 유지보수성을 향상시킬 수 있습니다.

AOP는 대표적으로 Spring Framework에서 많이 사용되는 기술 중 하나입니다. Spring AOP는 프록시(proxy) 패턴을 이용하여 aspect를 적용합니다. 이를 통해, 관심사를 분리하고 모듈 간의 결합도를 낮출 수 있습니다.

 

 

인터페이스 : 설계하기 위한 용도로 쓴다.

추상메소드는 강제성을 주기 위해 사용

상위 클래스의 상속은 강제성이 없다.

 

재정의 - annotation, overiding

 

스프링에 인터페이스가 엄청 많이 나온다.

 

에러

 

  • 폴더경로 아이콘에 S가 사라졌을 때 해결방법!

재컴파일 : 프로젝트 -> 클린 

 

 - xml 은 컴파일 할 때 문제가 있어 잘 사용하지 않는다.

 

 

 

 

@Controller 이걸 가능하게 해준다

 

 

 

 

beans 

어떤 클래스는 여기에있다 

 

 

new 는 내가 생성시켜서 하는 것

static 이 붙으면 new 해서 생성하는게 아니다.

상수 선언이며 

 

메소드에 붙은 final 상속 불가

 

 

접근제한자 종류

  • private: 해당 클래스 내에서만 접근이 가능합니다.
  • default (package-private): 같은 패키지 내에서만 접근이 가능합니다. 접근 제한자를 명시하지 않으면 자동으로 default로 설정됩니다.
  • protected: 같은 패키지 내에서와 해당 클래스를 상속받은 하위 클래스에서 접근이 가능합니다.
  • public: 어떤 클래스에서도 접근이 가능합니다.

 

 

 

@Controller 이게 다 필요하다 그래야 스프링이 이해한다..

 

HomeController.java

  • locale : 접속 지역
    • ko_KR

 

  • {} 안에 들어갈 데이터를 , 옆에 써준다.

 

 

서버쪽에는 클래스 파일만 업로드한다.

로그는 여러군데에서 쌓인다.

 

 

 

EL표기법

EL(Expressions Language)은 JSP(JavaServer Pages)와 JSF(JavaServer Faces)에서 사용되는 표현 언어입니다. EL은 간단한 표현식을 사용하여 Java 객체의 프로퍼티 값을 가져오거나 메소드를 호출할 수 있습니다. EL 표기법은 ${} 기호를 사용하여 나타냅니다.

 

 

web.xml 에 하나 추가해주면 인코딩 문제 해결이닷!

 

 

롬복 설치 사이트

 

 

롬복 설치경로로 cmd 로 들어가준다

 

 

C:\Users\SMHRD\Downloads>java -jar lombok-1.18.12.jar

 

 

실행 후 선택

 

 

install / update 클릭

 

잘뜨면 나간다

 

 

경로 열어서 SpringToolSuite4.ini 파일 메모장으로 연다

메모장 맨 밑에 롬복 설치되있는지 확인

 

 

근데 롬복 실행이 안된다...

 그럴 땐 경로를 롬복을 설치받았던 원래 경로로 바꿔준다

 

요렇게 했더니 켜진다..!!!!!

 

롬복 디펜던시 

https://mvnrepository.com/

 

검색어에 lombok 검색

 

 

 

 

 

 

 

 

넣어주면 추가된다.

 

 

 

 

패키지 추가

 

테스트 롬복 클래스 생성

 

 

클래스 호출

 

 

캡슐화 = 은닉화

캡슐화 = 은닉화

 

 

 

 

 

 

+ Recent posts