[Java] 스프링 컨테이너와 싱글톤 컨테이너

    이전 시간에 이어서 DI, IoC컨테이너를 스프링 컨테이너로 바꿔봅시다. 목차 컨테이너 생성 과정 컨테이너 생성 방법 싱글톤 패턴 스프링 컨테이너란? 프레임워크를 사용해서 빈을 생성하고 관리하는 저장소 종류 스프링 컨테이너는 BeanFactory와 ApplicationContext가 있습니다. 둘의 구분은 상속관계를 보면 알 수 있듯이 ApplicationContext가 더 기능이 많습니다. 생성 방법 컨테이너 생성 빈 등록 먼저 컨테이너를 생성해봅시다. ApplicationContext ac = new AnotationConfigApplicationContext(AppConfig.class); //AppConfig클래스를 스프링 컨테이너로 등록하겠다. 그러면 빈 이름과 객체로 구성된 저장소가 생성됩니다..

    [Java] IoC, DI, 컨테이너

    IoC(Inversion of Control)란? 제어의 역전이라는 뜻입니다. 프로그램의 흐름을 개발자가 아닌 프레임워크가 제한하는 것을 말합니다. 말로는 잘 이해가 안되니 코드로 설명하겠습니다. 주문 시스템 클래스 다이어그램 OrderServiceImpl 클래스 public class OrderServiceImpl implements OrderService { private final DiscountPolicy discountPolicy; public OrderServiceImpl(DiscountPolicy iscountPolicy) { this.discountPolicy = discountPolicy; } ... } AppConfig 클래스 public class AppConfig { public O..

    [Java] Spring과 SOLID - 2편

    이전 게시글에 이어서 OCP와 DIP에 대해서 설명하겠습니다. 목차 OCP, DIP정의 위반 사례 해결방안 정의 OCP(Open/closed priciple) : 확장에는 열려있으며 변경에는 닫혀있습니다. DIP(Dependency inversion priciple) : 추상화에만 의존해야지, 구체화에 의존하면 안 됩니다. 이 정의만 봐서는 잘 이해가 안 됩니다. 따라서 코드를 가지고 설명하겠습니다. 회원 도메인입니다. 기능은 보시는 대로고, 회원 정보를 메모리에 저장 할 수도 있고, DB나 외부 시스템을 사용할 수 있기 때문에 미확정입니다. 클래스 다이어그램입니다. 그럼 위의 클래스 다이어그램의 MemberServiceImpl을 구현해봅시다. public class MemberServiceImple i..

    [Java] Spring과 SOLID - 1편

    이번에는 스프링과 SOLID에 대해서 알아봅시다. 목차 스프링이란? 객체지향이란? SOLID란? 서론 저는 엔테크서비스 인턴 면접중 이런 질문을 받았습니다. "스프링에 대해서 설명해주세요." 스프링에 대해서 잘 안다고 할 순 없지만 그래도 관련 플젝 경험이 몇 번 있기 때문에, 자신있게 대답했죠. "웹 서버를 만들기 쉽게 하기위한 라이브러리들의 집합이며, DB 연결도 편리하게 해주는 역할을 합니다. 또한 유지보수 측면에서 효과적이고, 기본적인 구조는 동일하기 때문에 개발자들 끼리 의견공유가 쉬워집니다..." 틀린 말은 아닙니다. 그 당시엔 정답이라고 생각했지만, 지금 생각해보면 면접관이 원하는 답은 아니라고 생각합니다. 결정적으로 면접관 얼굴표정도 그닥 만족스럽지 않았구요. 그래서 이번 기회에 다시 한번..

    [간단한 게시판 만들기] - 3. 게시글 쓰기

    BoardDto 빈 만들기 write.jsp 페이지 만들기 mvc패턴 순서대로 데이터 전달 dao에서 DB연결 쿼리문 생성 잘 들어갔나 확인 BoardDto 빈 만들기 package com.web.toy.model; public class BoardDto { private int no; private String userId; private String subject; private String content; private String rogtime; public BoardDto() { // TODO Auto-generated constructor stub } public BoardDto(int no, String userId, String subject, String content, String ro..

    [간단한 게시판 만들기] - 2. 로그인 기능( 세션, 쿠키 설정)

    1. 로그인 화면 만들기 2. mvc 패턴 만들기 3. 세션, 쿠키 설정 4. 잘 전달 됐는지 확인 1. 간단한 로그인 화면 부트스트랩 찾아보면서 복붙하면 된다. user id Password Check me out Submit 2. mvc패턴 만들기 3. 세션 쿠키 설정 private void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String userid = request.getParameter("userid"); String userpwd = request.getParameter("userpwd"); System.out.println(userid +" "+..

    [간단한 게시판 만들기] - 1. DB연동

    1. context.xml설정 2. connection설정 3. jdbc사용해서 간단한 select문 만들기 tomcat.apache.org/tomcat-9.0-doc/jndi-datasource-examples-howto.html Apache Tomcat 9 (9.0.39) - JNDI Datasource How-To JNDI Datasource configuration is covered extensively in the JNDI-Resources-HOWTO. However, feedback from tomcat-user has shown that specifics for individual configurations can be rather tricky. Here then are some examp..

    [활용] Servlet, 싱글 파라미터 넘기기

    책 정보 전달 프로그램 1. 로직 2. 코드 Login.html 로그인 해! id: password: Login form태그 사용해서 서블릿으로 data전송 Mainservlet.java 넘어온 정보를 servlet에서 판단 후, 에러페이지나 Book.html로 넘긴다 package servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServ..

    Servlet과 Jsp를 이용하여 싱글파라미터 넘기기

    1. servlet이란? 자바를 활용하여 동적으로 웹페이지를 생성하는 서버측 프로그램이다. 간단히, 홈페이지 로그인을 했을때 바뀐 이미지가 나오는걸 생각하면 된다. 2. jsp란? 웹 서버에서 동적으로 웹페이지 생성해서 돌려준다. 간단한 예제 index.html 상품을 등록 해 주세요. 상품명: 상품가격: 상품 설명: 전송 취소 버튼 클릭 시 mainservlet.do를 찾아서 form값 전달 Mainservlet.java package servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpS..

    ajax 사용, json정보 가져오기

    실행화면 전체 코드 Cinema 최신영화소개 영화관찾기 로그인 회원가입 힐링 시네마 힐링 시네마는 새로운 개념의 영화장르의 한가지를 말하는 것입니다. 지친 영혼을 위한 휴식을~~~~~ 예고편 보기 상영시간 보기 예고편 보기 상영시간 보기 예고편 보기 상영시간 보기 상영시간보기 × Close json 코드 [ { "idx" : "1회", "time" : "9:00 ~ 11:00" }, { "idx" : "2회", "time" : "12:00 ~ 14:00" }, { "idx" : "3회", "time" : "14:00 ~ 16:00" } ] 코드분석 - ajax를 사용해서 빨간버튼 클릭 시, 정보를 가져왔습니다. 가져온 데이터를 append함수를 사용해서 모달창에 넣어주었습니다. 모달창 실행 버튼, 모달창..