Inversion of Control / Dependency Injection Dependency Injection은 Inversion of Control 원칙을 구현하기 위한 방법. (IoC=DI) 컨테이너가 코드 대신 오브젝트의 제어권을 갖고 있어 IoC(제어의 역전)이라 한다. 개발자가 만든 어떤 클래스나 메소드를 다른 프로그램이 대신 실행해주는 개념. 누군가가 Bean을 넣어주면 사용자는 활용만 할 뿐 그것이 무엇인지 모른다. POJO와 설정(Configuration Metadata)을 등록하고 IoC/DI Container에 주입시키면 Bean을 생성(인스턴스화)한다. 이 과정을 Dependency Injection 혹은 Inversion of Control이라 할 수 있다. Spring에서 제..
방법1 - applicationContext.xml에서 등록하는 방법 maven 프로젝트 구조에서 src/main/resources/applicationContext.xml 파일을 생성하여 bean을 등록 및 관리할 수 있다. ㄴsrc ㄴmain ㄴjava : 자바 패키지 폴더와 소스 코드가 위치함. ㄴresources : *.properties, *.xml 등 설정파일들이 위치함. ㄴwebapp : WEB-INF와 웹 관련 리소스(html, jsp)들이 위치함. ㄴtest ㄴjava : 테스트와 관련된 자바 패키지와 소스코드가 위치함. ㄴresources : 테스트와 관련된 설정파일이 위치함. ㄴtarget : 컴파일, 패키징된 결과물이 위치함. ㄴpom.xml : Maven 설정 파일 public c..
프레임워크 vs 라이브러리 공통점 : 남이 짜놓은 코드를 가져다 쓴다. 차이점 : 라이브러리가 각각 개별적인 기능들이라면 프레임워크는 각 라이브러리들이 모여서 기본 제품 골격을 갖춘 상태에 덧붙여서 만드는 것을 프레임워크라 한다. 차이점2 : 프레임워크로 일을 할 때는 프레임워크의 규칙을 따라야 한다. 언어별 프레임워크 Java : Spring PHP : Laravel, CodeIgniter, Symfony Python : Django Ruby : Ruby on Rails Scala : Play C# : .NET Core 참조 https://www.youtube.com/watch?v=AERY1ZGoYc8&t=8s https://www.youtube.com/watch?v=t9ccIykXTCM&list=TL..
구조 WAS ㄴWeb Server ㄴWeb Container Web Server 웹브라우저로부터 HTTP 요청을 받아 정적인 컨텐츠를 제공 ex)html, jpg, css, js 정적인 컨텐츠는 WAS를 거치지 않고 바로 제공 동적인 컨텐츠는 요청(Request)을 WAS에 전달하고, WAS가 처리한 결과를 웹브라우저에게 응답(Response)한다. 예) Apache Server, Nginx, IIS WAS; Web Application Server Web Application Server = Web Server + Web Container 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server. 예) 로직 처리, DB 접근 WAS는 Web Container 혹은 Servlet Cont..
try - with - resources문 자바7 버전에서 추가됨. 입출력 처리시 예외가 발생하는 경우 JVM이 자동으로 close()를 호출하여 자원을 반납시켜준다. try - catch문을 이용한 예외 처리 public List getRoles(){ List list = new ArrayList(); Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { Class.forName("org.mariadb.jdbc.Driver"); conn = DriverManager.getConnection(dburl, dbUser, dbPasswd); String sql = "SELECT description, role_id FR..
Maven 자바용 프로젝트 관리 도구. 이 외에 Ant, Gradle이 있음. 설정 파일에서 의존성 라이브러리를 관리함으로써 직접 다운로드하지 않아도 라이브러리를 사용할 수 있다. 이클립스에 내장된 Maven을 이용해 프로젝트를 생성할 수 있다. 파일구조 project home ㄴsrc ㄴmain ㄴjava : 자바 패키지 폴더와 소스 코드가 위치함. ㄴresources : *.properties, *.xml 등 설정파일들이 위치함. ㄴwebapp : WEB-INF와 웹 관련 리소스(html, jsp)들이 위치함. ㄴtest ㄴjava : 테스트와 관련된 자바 패키지와 소스코드가 위치함. ㄴresources : 테스트와 관련된 설정파일이 위치함. ㄴtarget : 컴파일, 패키징된 결과물이 위치함. ㄴp..
redirect 서버는 클라이언트의 요청에 대해 특정 URL로 이동을 요청하는 것. 웹브라우저 -> 서버 -> 302코드, location값 -> 웹브라우저 -> location값으로 재요청 -> 웹브라우저 브라우저의 주소창은 새 URL로 바뀐다. 예) 게시글 작성 버튼 클릭시 서버에 글 작성 요청 후 글 목록으로 이동하는 경우 소스코드 redirect01.jsp redirect02.jsp redirect된 페이지 입니다. 결과 forward 웹브라우저에서 Servlet1에게 요청 Servlet1은 요청을 처리한 후, 그 결과를 HttpServletRequest에 저장 Servlet1은 결과가 저장된 HttpServletRequest와 응답을 위한 HttpServletResponse를 같은 웹 어플리케이..
JSP JSP는 JSP 자체가 동작하는 것이 아니라 모든 JSP는 서블릿으로 바뀌어서 동작한다. WAS가 지시문의 명령을 받는다. 문법 // 지시문 // import // 선언문; 전역변수 선언 및 메소드 선언에 사용 // scriptlet; 자바코드를 입력할 수 있는 부분 Servlet(Java 파일) Servlet 코드를 컴파일해서 실행가능한 bytecode로 변환한다. -Servlet(Java 파일) -> class class를 로딩하고 인스턴스를 생성한다. servlet이 실행되어 요청을 처리하고 응답 정보를 생성한다. java, class 파일 생성 경로 workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\loc..