스프링부트로 내장서버를 이용하려다 만난 에러이다. 스프링부트(Spring Boot)에는 톰캣이 내장되어 있어, 애플리케이션을 빌드하고 실행하는 것만으도로도 웹 애플리케이션을 서비스 할 수 있다. 톰캣을 따로 설치할 필요 없이 애플리케이션을 바로 실행할 수 있다는 것을 의미한다. 필요시 프로그램에서 코드로 톰캣을 사용할 수 있도록 도와주는 클래스가 있는데 바로 TomcatServletWebServerFactory() 라는 메서드이다. 그리고, 스프링 부트는 톰캣 외에 제티나 언더투어등 다른 서블릿 컨테이너도 지원해며 이를 사용할 수 있도록 ServletWebServerFactory로 추상화를 해놓았다. ServletWebServerFactory를 구현한 클래스는 getWebServer()를 지원해야 하는데..
스프링 빈은 기본적으로 싱글톤 스코프로 생성이 된다. 스프링 컨테이너의 시작과 함께 생성되어서 스프링 컨테이너가 종료될 때 까지 유지된다. 스코프는 번역 그대로 빈이 존재할 수 있는 범위를 뜻한다. 싱글톤 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다. 프로토타입 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다. 웹 관련 스코프 request : 웹 요청이 들어오고 나갈때 까지 유지되는 스코프 session : 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프 application : 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프 프로토타입 스코프 싱글톤 스코프의 빈을 조회하면 스프링 컨테..
스프링 빈은 간단하게 다음과 같은 라이프사이클을 가진다. 객체생성 -> 의존관계 주입 객체를 다 생성해 놓아야 의존관계 주입을 할 수 있다. 생성자주입의 경우 예외이다. 스프링 빈은 객체를 생성하고, 의존관계 주입이 다 끝난 다음에야 필요한 데이터를 사용할 수 있는 준비가 완료된다. 초기화 라는 작업은 객체를 생성하는 작업이 아닌, 객체안에 필요한 값이 다 연결이 된 후를 이야기한다. 따라서 초기화 작업은 의존관계 주입이 모두 완료되고 난 다음에 호출해야 한다. 그런데 의존관계 주입이 모두 완료된 시점을 어떻게 알 수 있을까? 스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해서 초기화 시점을 알려주는 다양한 기능을 제공한다. 또한 스프링은 스프링 컨테이너가 종료되기 직전에 소멸콜백을 준..
스프링 MVC를 학습하는데 가장 먼저 기억해야 하는 점은 스프링 MVC가 스프링의 서브(sub) 프로젝트라는 것이다. Spring Framework 라는 메인 프로젝트 외에도 여러 종류의 서브 프로젝트가 존재하는데, 스프링 MVC 역시 이러한 프로젝트 중 일부이다. 스프링은 하난의 기능을 위해 만들어진 프레임워크가 아니라 '코어'라고 할 수 있는 프레임워크에 여러 서브 프로젝트를 결합해서 다양한 상황에 대처할 수 있도록 개발되었다. 서브 프로젝트라는 의미를 개발자의 입장에서 가장 쉽게 이해할 수 있는 방법은 '별도의 설정이 존재할 수 있다' 라는 개념이다. Spring Legacy Project로 생성한 예제의 경우에도 servlet-context.xml과 root-context.xml로 설정파일이 분리..
JAXB는 Java Architecture for XML Bind을 뜻한다. 우리는 Maven 형식으로 프로젝트를 구성할때 등등 프로젝트를 하면서 많은 xml을 사용하는데 xml을 java Object 형식으로 바꿔주는 역할을 하는 기술이 JAXB 이다. 나는 지금 현재 Java11 버전을 사용하고 있고 hibernate를 사용하려던중 에러가 발생했다. JAXB는 Java6에서 2.0으로 내장되어 있었고 Java9 에서 모듈화 방식을 사용하면서 vm 옵션을 통해 추가 해서 사용할수 있었으나 Java11 버전부턴 삭제가 되었다고 한다. 원인 Java 8 -> Java 9 버전업 시 해당 모듈이 제거됨 Java SE 9: JAXB API를 Java EE API로 간주해 기본 클래스 경로에 포함하지 않음 Ja..
https://url.kr/a1swod 코드로 배우는 스프링 웹 프로젝트:현업 개발을 위한 단계별 실습서 COUPANG www.coupang.com 스프링 프레임워크의 간략한 역사 2000년대 초반부터 시작된 엔터프라이즈급의 개발은 안정된 품질의 개발이 절실했고, 그 결과 많은 프레임워크의 전성시대라고 할 수 있었다. 스프링은 비교적 그 시작이 조금 늦은 프로젝트였지만, 가장 성공적인 '경량 프레임워크'이다. 경량프레임워크? 경량프레임워크라는 용어는 90년대 말에 복잡한 구동환경과 하드웨어적인 구성이 필요한 프레임워크의 반대되는 개념으로 등장. 과거 J2EE 기술은 너무나 복잡하고 방대했기 때문에 이를 특정 기능을 위주로 간단한 jar파일 등을 이용해서 모든 개발이 가능하도록 구성된 프레임워크이다. * ..
프로젝트 생성시 발생한 에러 부트 프로젝트를 오픈하려고 하는데 에러가 딱 발생했다. no matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.2 was found .. 결론적으로, 자바 버전 문제로 발생한 에러이다. 스프링부트 3.x.x 버전은 자바 17 스프링부트 2.x.x 버전은 자바 11 좌측 상단의 Project > gradle에 들어가서 id 'org.springframework.boot' version '3.x.x'를 id 'org.springframework.boot' version '2.7.6'으로 변경해주면 정상 작동한다.
객체지향의 사실과 오해 : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 종종 들어보기만 했던 이 책이 참 궁금했다. 객체지향의 사실과 오해. 객체들을 어떠한 협력 관계로 바라보아야 하는것인지. 이 책을 읽어나가면서 기억하고 싶은 부분들을 발췌해서 메모해본다. 객체지향으로 향하는 첫 걸음은? 1. 클래스가 아니라 객체를 바라보는 것에서 부터 시작한다. 2. 객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 존재로 바라보는 것이다. 3. 협력에 참여하는 객체들에게 얼마나 적절한 역할과 책임을 부여할 수 있는가. 4. 앞에서 설명한 개념들을 우리가 사용하는 프로그래밍 언어라는 틀에 흐트러짐 없이 담아낼 수 있는가. 1장 - 객체지향 패러다임..
- Total
- Today
- Yesterday
- Node.js
- 리액트
- 객체지향
- security
- React
- JavaScript
- 인덱스
- 스프링
- @Configuration
- EC2
- 남궁성
- 컨테이너
- Spark
- 데이터베이스
- 코드로 배우는 스프링 웹 프로젝트
- 스프링 빈
- 시큐리티
- spring
- 자바의정석
- 한입크기로 잘라먹는 리액트
- 데브캠프
- di
- 자바스크립트
- 스프링 프로젝트
- 스프링의정석
- MySQL
- node
- AWS
- 이정환
- 친절한SQL튜닝
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |