Spring 18

Bean이란? 그리고 Spring의 싱글톤 활용(singleton registry)

빈(Bean) 이란?Bean이란 컴포넌트 모델에서 유래한 JavaBeans에서 따온 단어이다.컴포넌트 모델(Component Model)은 모듈화, 재사용성, 유지 보수성을 위해 발전해 온 소프트웨어 개발의 범용적인 개념인데, 자바(Java)는 이 개념을 기반으로 JavaBeans라는 개발 표준을 도입했다.그래서 Bean이라는 용어는 Java 초기부터 '재사용 가능한 객체(Object)'를 지칭하는 용어로 자리잡았고, 이 개념이 스프링 프레임워크(Spring Framework)까지 이어지게 된 것이다. 이로 인해, 스프링 컨테이너에 의해 관리되는 객체를 Bean이라는 용어로 부르게 된 것이며 자바에서 컴포넌트(Component)란 사실상 Bean과 동일한 의미로 사용된다. 결론적으로 애플리케이션의 기능을..

Spring 2024.09.01

이클립스 Java Build Path와 Deployment Assembly 그리고 target

프로젝트의 Properties 창을 보면 여러 설정들이 있는데, target이란 디렉토리를 알아보던 중 Java Build Path와 Deployment Assembly 에 대해 정리해 봤다. Java Build Path 1) Source 탭은 컴파일 및 빌드 과정에서 소스 파일들을 이용할 수 있도록 프로젝트 내의 Java 파일 등의 경로를 지정하는 곳이다. 2) 이클립스에서 'Build'는 주로 컴파일을 의미하기에, Java Compile Path라고 생각하면 된다. 3) 'Output folder'의 경로는 java가 소스파일들을 컴파일하여 실행 가능한 .class 파일을 생성하는 경로를 나타낸다. 실제로 '프로젝트명/target/classes' 폴더를 열어보면 각종 설정 파일 및 xml 파일 또한 ..

Spring 2023.05.24

EJB와 스프링 개론

EJB(Enterprise Java Bean) Java bean이란 자바 객체를 재사용 가능하도록 즉, 컴포넌트화시킬 수 있는 코딩 방침을 정의한 것을 의미한다. (bean은 쉽게 component 또는 객체라고 이해하면 좋다.) EJB란 엔터프라이즈급 어플리케이션 개발을 단순화하기 위해 발표한 스펙입니다. 개발을 하다 보면 많은 객체들을 만들게 되는데, 이러한 비즈니스 객체들을 관리하는 컨테이너를 만들어서 필요할 때마다 컨테이너로부터 객체를 받는 식으로 관리하면 효율적이겠다. 라는 것에서 탄생합니다. 이러한 취지는 좋았으나, 서비스가 구현해야 하는 실제 비즈니스 로직보다 EJB 컨테이너를 사용하기 위한 상투적인 코드(상속 and 구현해야 하는 클래스)들이 많다는 불편함이 있었습니다. 당연히 작성된 코드..

Spring 2021.02.23

Spring Container에 Bean등록(Xml) 및 사용 예시

Spring framework에서 중요한 핵심 개념인 DI(Dependence injection)에 대한 이해를 돕고자, Xml설정 파일을 이용해서 Spring Container(ClassPathXmlApplicationContext.class)에 Bean객체를 등록하는 예제입니다.User.java@Componentpublic class User { private Long no; private String name; @Autowired private Friend friend; private List friends; public User() { no = 1L; name = "루피"; } public User(Long no, String name) { this.no = ..

Spring 2019.10.15

Maven project 와 War, Jar파일 차이

Spring Framework 기반의 프로젝트를 진행할 때 일반적으로 Maven을 사용하는 경우가 많은데,이때 실질적인 사용법인 'pom.xml'파일 작성방법과WAS(Tomcat)에 의해 변화되는 패키지(package) 위치에 대해 정리해보겠습니다. Maven Project란 무엇인가??우선, 메이븐은 자바소스파일(war또는 jar파일)을 빌드(build), 라이브러리 의존성(dependency), 컴파일(compile), 배포(deploy)를 해결해주는 도구입니다. 쉽게 말해 자바용 프로젝트 관리도구이며, 이것을 사용하는 프로젝트가 바로 Maven project입니다. 1) pom.xml 구성 ① : pom.xml내의 dependency환경 설정을 위한 변수를 SET. ② : 여기다가 프로젝트에서 ..

Spring 2019.09.26

Tomcat과 Servlet프로젝트 기본 설정하기

1) Eclipse와 Library dependency하지 않도록 maven project를 생성.일반적으로 이클립스에서 Java project로 생성하는 프로젝트는 이클립스의 native project로 생성된다. 이 말은 해당 프로젝트는 이클립스 자체 설정에 종속돼있는 라이브러리를 쓰는 프로젝트를 뜻함. 그리고 라이브러리 등의 설정들이 모두 개발도구(Eclipse 등)에 종속돼있기 때문에 자바코드는 개발환경과 분리가 안됨. 하지만 maven(또는 gradle)을 사용하면 내부에 라이브러리 설정을 셋팅하기 때문에 개발도구와 분리가 가능하게 되어 다른 이클립스 환경에서도 실행이 가능해진다. 2) Eclipse Console창에서의 실행이 아니라 WAS환경인 Tomcat위에서 프로젝트를 실행시킬 것이기 때..

Spring 2019.09.10

이클립스 톰켓(Apache Tomcat) 연동 및 포트 충돌 에러 해결

several ports (8005, 8080, 8009) required by Tomcat v9.0 Server at localhost are already in use. The server may already be running in another process or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s).톰켓(Tomcat)을 실행시켰을 뿐인데, 위와 같은 에러가 발생했다.. 먼저 이 에러를 보신 분들은 톰켓을 다운받고 확인차 주소창에 'localhost:8080' 확인하셨을 겁니다.(톰켓 다운로드Url : ..

Spring 2019.02.13

WAS와 웹 서버(Web Server)의 차이. 그리고 Apache와 톰캣(Tomcat)??

Web Server와 WAS(Web Application Server)의 역할과 차이1) 웹서버(Web Server) = Apach클라이언트가 서버에 요청을 하면 가장 앞에서 요청을 받아 정적 컨텐츠(.html, .css, .png 등)를 제공하는 서버 보통 WAS앞에 여러 개 둔다. 1개의 웹서버만 있을 시, 사용자가 몰리면 서버가 터질수 있기 때문에. ①동작순서1. 정적 컨텐츠는 웹서버가 바로 제공 가능. But 사용자에 맞춰 다른 컨텐츠를 보여줘야하는 동적인 컨텐츠(JSP, Servlet 등)는 웹서버에서 처리 불가능.2. WAS에게 동적인 컨텐츠의 처리를 부탁하자!3. WAS는 요청을 처리하고 HTML로 만들어서 보냄. 웹서버가 받아 User(클라이언트)에게 응답(response)  2) WAS(..

Spring 2019.01.12