WAS 와 서블릿
인터넷으로 주고 받는 데이터는 데이터 종류별로 특유의 방식으로 전달된다. 이걸 프로토콜(Prototal) 이라고 하는데 웹에서는 HTTP 라는 프로토콜을 사용해서 정보를 주고 받는다.🖥️ (클라이언트) ➡️ 🌐(인터넷) ➡️ 🖥️ (서버)클라이언트와 서버는 HTT

객체의 수명과 공유 범위를 효율적으로 관리하기 위해서 스프링은 빈 스코프를 사용한다. 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 --> 사용 🖥️ --> 소멸 -> 서비스 종료스프링 빈은 보통 위의 생명주기를 가지게 된다. 그런데 모
우리가 프로그램을 서버와 데이터베이스를 연결해서 서비스를 시작할 때 미리 연결을 해둬야하는 것들이 있다. 데이터베이스 커넥션 풀, 네트워크 소켓 처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 이 연결을 종료하는 작업이 필요하다. 이
오늘 학습 내용 오늘은 의존관계 주입 강의 학습을 완료했다. 스프링 입문편을 공부하면서 알게된 DI 를 더 자세한 내용으로 진행한다. 의존관계 주입 방법 4가지와 관련해서 편리하게 할 수 있는 애노테이션들, 전략패턴을 만들어서 동적으로 스프링 빈 변경하는 방법 등을
✅ 컴포넌트 스캔 >설정정보에 직접 스프링 빈을 등록하는 방법 VS 스프링 컴포넌트 스캔으로 스프링 빈 자동 등록 + @Autowired 기능 (의존관계 자동 주입) ComponentScan 은 @SpringBootApplication 에 들어있다. 그래서 직접
스프링은 기업용 온라인 서비스 기술을 지원하기위해 만들어졌다. 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. (약 90%)웹 애플리케이션은 보통 여러 고객이 "동시에" 요청을 한다 ‼️✔️ 애플리케이션 : 특정 목적을 위해 만들어진 소프트웨어 덩어리스프링 없는 순

➡️ 보통ApplicationContext 를 스프링 컨테이너라고 한다. 스프링 컨테이너를 생성할 때는 구성 정보를 지정해주어야 한다.➡️ 애노테이션 기반의 자바 설정 클래스(AppConfig) 와 XML 파일을 기반으로 만들 수 있다.스프링 컨테이너에 실제 스프링 빈
✅ 회원 웹 기능 - 홈 화면 추가 만들어 둔 백엔드 코드를 웹 화면에 html 형태로 전송하는 작업을 한다. 홈 컨트롤러 추가 ➡️ 사이트를 켰을 때 처음 보이는 기본 홈 화면이다. >웹 서버도 하나의 컴퓨터이기 때문에, 사용자가 주소를 치고 들어오면 "가장
회원 컨트롤러가 회원 서비스와 리포지토리를 사용할 수 있게 의존관계로 설정보통 라이브러리는 코드를 만드는 사람이 호출해서 사용하지만, 스프링은 반대로 스프링이 주도권을 잡아서 내 코드에 붙은 애노테이션을 보고 라이브러리를 호출해서 실행한다. 그리고 우리는 어떤 라이브러

서버에서 하는 일 없이 파일을 그대로 웹이나 앱에 내리는 방식이다. 단순한 안내 페이지나 바뀌지 않는 화면을 만들 때 사용한다.Model View Controller 의 약자로 템플릿 엔진을 이용해 html을 동적으로 바꿔 웹에 내리는 방식이다. 링크창에 객관식 경로를

✔️ 스프링 이란? java 언어를 기반으로 한 백엔드 프레임 워크 자주 사용하는 기능을 아주 정교한 코드 뭉치(라이브러리)로 만들어서 보관하고 있다. 그냥 라이브러리들을 쌓아둔 창고가 아니라, 수많은 라이브러리가 서로 충돌하지 않고 잘 돌아가도록 조율해주는 '지능
드디어 자바 중급 2 강의를 완강했다.... 이제 Spring 으로 넘어간다. 갈 길이 멀구나 ⛰️....😂 예전부터 있었던 강박(?) 인데 복습을 할 때 전부 하나하나 다 내가 말로 설명할 수 있을 정도로 되지 않으면 복습은 제대로 한거 같지 않아서 공부하기
✅ set 값의 중복을 허용하지 않고, 순서를 보장하지 않는 자료구조 HashSet 중복을 허용하지 않는다. 순서를 보장하지 않는다. **➡️ 데이터의 유일성만 중요한 경우 ‼️ ** LinkedHashSet 중복을 허용하지 않는다. 데이터의 입력 순서를 보장

내가 직접 만든 클래스를 해시자료구조에 저장할 때는 반드시 equals와 hashCode를 오버라이딩을 직접 해두어야 한다. equals 와 hashCode 둘 다 재정의 하지 않은 경우➡️ id = "A" 같은 값이 중복되서 들어갔다. (중복 확인을 ❌)➡️ 서로 다

오늘부터 다시 블로그에 매일 공부한 내용을 정리해보려 합니다. 한동안 굿노트에 손으로 쓰면서 정리했는데 블로그 형식으로 정리하는게 나중에 말로 정리해서 설명하는데 도움이 될거 같네요.
✅ 제네릭이 필요한 이유

예외 처리 1에서는 반환값으로 예외를 처리했다. ➡️ Client 클래스의 필드에 오류검사 메서드의 결과를 필드에 boolean으로 담아두고 검사해 문자열을 반환한다. 또 문자열을 비교해서 예외 처리를 한다. (불필요한 검사 코드가 많음, 예외는 입력받은 문자열을 가지

\- 예외 : 단순히 오류를 표시하는 것. \- 예외 처리 : 개발자가 프로그램을 다시 정상적으로 돌리기 위해 대응 로직을 작성하는 것이다.NetworkClient : 외부 서버와 연결하고, 데이터를 전송하고, 연결을 종료하는 기능이 있다.NetworkService

익명 클래스는 지역 클래스의 특별한 형태로, 이름이 없고 동시에 부모 클래스 상속이나 인터페이스 구현을 한다. 즉, 클래스 선언과 객체 생성을 한 번에 처리하는 방식이다.블록({...}) 안에 작성하는 내용은 익명 클래스가 가진 인스턴스의 필드와 메서드가 된다. 따라서
익명 클래스(Anonymous Class) 는 지역 클래스의 특별한 종류의 하나다. 클래스의 이름이 없다는 특징이 있다.✅ 선언과 생성을 동시에 처리한다✅ 부모 클래스를 상속 받거나, 또는 인터페이스를 구현해야한다익명 클래스는 이름이 없는 클래스로, 주로 단 한 번만
내부 클래스의 특별한 종류 중 하나로 지역변수처럼 메서드 안에 생성된다. 그래서 해당 메서드 실행 시점에만 유효하고 실행이 끝나면 지역 클래스 정의 자체는 접근이 불가능하다.⚠️ 지역 변수는 메서드 안에 정의 되고, 필드는 클래스 안에 정의된다 ! 이 둘을 혼동하면 안
클래스안의 클래스를 말한다. 바깥 클래스의 속성이 되는 클래스를 내부 클래스라고 하고, 바깥 클래스의 내부에 위치 할 뿐 속성으로 해당하지 않는 클래스를 정적 중첩 클래스 라고 한다.우리가 외부 클래스를 호출해서 사용할 때, 하나의 클래스에서만 사용을 하는 클래스가 생
java.time 패키지 ➡️ 표준적인 날짜와 시간 라이브러리LocalDate : 특정 지역의 날짜를 표현LocalTime : 특정 지역의 시간을 표현LocalDateTime : 특정 지역의 날짜와 시간을 표현⚠️ 세계 시간대를 고려하지 않고 그 지역의 날짜와 시간을
✅ 타입 안전 열거형 패턴 📌 장점 : 클래스를 정의해서 정해진 객체만 사용가능하게 제한 정해진 객체만 사용할 수 있어서 잘못된 값을 입력할 수 있는 문제를 해결할 수 있다. 정해진 객체만 사용해 값이 일관성을 보장한다. 잘못된 값을 사용하는 걸 컴파일 시점에서