Spring 13

spring ApplicationContext, @primary, @qualifier

21.08.26 개강 준비 + 21.09.05 에 있을 sqld 시험 준비 때문에 포스팅을 잠깐 쉬었습니다. 앞으로는 Spring 5 recipe의 내용을 차례로 정리해볼 생각입니다. 상당히 두꺼운 책이므로 헷갈렸던 부분 및 아예 모르던 기능 위주로 찾아가며 정리하겠습니다. 1. ApplicationContext 먼저 스프링 컨테이너(IOC container)의 종류는 bean factory와 applicationContext가 있습니다. applicationContext는 spring에서 핵심적인 인터페이스라고 생각합니다. beanFactory를 상속 받으며 다양한 기능을 합니다. (둘의 차이점은 Bean 객체가 생성되는 시점에 차이가 있습니다.) 아무튼 applicationContext는 빈의 생성,..

Spring 2021.08.27

spring 프로젝트 진행 중 오류 1

21.08.16 1. 문제1 발생 1. DB에서 regdate는 datetime으로 선언한 칼럼이었습니다. 2. spring에서 객체로 값을 받아와 view단에 el태그를 사용해 뿌려줬습니다. ( ${list.regdate} ), 그러나 값이 제대로 넘어오지 않았는지 계속해서 공백이 떴습니다. 3. 오류 메세지가 뜨지 않고 공백만 뜨는 것을 보아 뭔가 datatype의 문제가 아닐까 생각하고 해결하는 시간을 가졌습니다. 2. 문제1 해결 1. DB에서 datetime으로 선언한 것은 옳았습니다. 게시글의 날짜와 시분초까지 알기 위해선 datetime, 또는 timestamp를 써야하기 때문입니다. 여기선 문제가 없었습니다. 2. 문제는 java코드에서 발생했습니다. ListVO 라는 class에 값을 받..

Spring 2021.08.16

Spring EL, 내장객체, 표현법

21.08.13 9월 5일에 SQLD 시험을 보기로 했습니다. 신청을 오늘 했기 때문에 약 3주 정도 남았습니다. 크게 어려운 자격증이 아니라는 후기들을 많이 봐서 부담없이 일단 신청했습니다. 1. EL이란 EL은 expression language의 약자로 데이터를 표현하기 위한 약자입니다. el로 인해 자바코드를 사용해야 했던 모든 곳에 el을 사용해 편리해졌습니다. el의 장점은 값이 없는 변수(null)에 좀 더 관대하다는 점과 데이터 형 변환을 자동으로 해준다는 점 입니다. 이러한 특징들은 특희 문자열을 처리하는데 주요하게 작용합니다. el 구문은 ${} 안에 넣어 사용합니다. el을 사용하면 에 객체를 꺼내는 코드를 작성하거나 을 사용할 필요가 없어 훨씬 간결하게 작성할 수 있습니다. 후에 반..

Spring 2021.08.13

Spring Model, Model 객체

21.08.11 학교 개강 준비 때문에 며칠간 글을 못 썼습니다. 오늘은 model 객체에 대해 정리해보겠습니다. 1. Spring Model 객체란 스프링에서 controller의 메서드는 보통 model이라는 타입의 객체를 파라미터로 받을 수 있습니다. 순수하게 jsp servlet으로 웹 어플리케이션을 만들 때 보통 request나 session 객체에 정보를 담아 view단에 넘겨줍니다만 spring에선 이런 작업을 할때 model 객체를 쓸 뿐입니다. jsp, servlet으로 웹을 만들 땐, request.setAttribute니 dispatcher니 forward니 이것 저것 많이 붙여줘야 됐었습니다. 그러나 spring으로 만들땐 model.addAttribute("이름", 값); 으로 매..

Spring 2021.08.11

session, Session의 동작 순서, Session 사용 코드

2021.08.07 공모전 제출용 프로젝트 진행 중입니다. 로그인 기능 구현을 해봤는데 session을 통해 로그인 정보를 저장하게 했습니다. 1. Session이란 Session이란 클라이언트와 웹서버 간의 네트워크 통신이 이루어질때 클라이언트가 누구인지 식별할때 사용합니다. 클라이언트가 서버로 요청을 할 때 서버는 session id를 판단하여 사용자가 누구인지 판단합니다. session의 장점을 설명하겠습니다. session이 유지되면 클라이언트를 계속해서 구분 할 수 있습니다. 즉, 각 클라이언트에게 고유 ID를 부여합니다. 사용자 정보는 클라이언트 쪽이 아닌 서버 쪽에 두어서 보안적인 면에서 쿠키보다 우수합니다. 세션 만료의 시간을 두어 서버에서 설정한 시간만큼 미동작시 세션을 만료시키는 방법을..

Spring 2021.08.07

Tiles, dependency

2021.08.07 벌써 8월이 된지 일주일이 지났습니다. 디자인에 욕심이 생기다보니 계속해서 수정하고 추가했습니다. 이것저것 신경 쓰다보니 시간이 금방갑니다. 1. Tiles란 tiles는 웹 페이지에서 반복적으로 사용되는 부분들에 대한 코드를 분리해 예쁘게 한 곳에서 관리하게 해주는 프레임워크입니다. JSP에서 include와 비슷한 역할을 합니다. 예를 들어 여러 페이지에 include 되어 있는 페이지명이 바뀌면 모든 페이지에서 include문에 파일명을 바꿔줘야합니다. 하지만 tiles는 설정파일만 변경해주면 됩니다. 따라서 둘을 비교했을때 tiles가 더 편리하고 좋습니다. 2. 사용하려면 tiles를 사용하기 위해선 porm.xml 파일에 dependency를 추가해주면 됩니다. 검색을 통해..

Spring 2021.08.07

spring mybatis, mapper

2021.08.05 역시나 덥습니다. 10시에 나와 집앞 카페에서 글을 쓰고 있습니다. 오늘은 학교 공모전용 웹 어플리케이션 제작 중 사용하고 있는 mybatis에 대해서 정리해보려고 합니다. 1. mybatis란 mybatis란 자바의 관계형 데이터베이스 프로그래밍을 더 쉽게 할 수 있게 도와주는 개발 프레임 워크입니다. JDBC를 통해 DB에 엑세스하는 작업을 캡슐화하고 일반 sql 쿼리 및 매핑을 지원합니다. 그 외에도 또 다양한 기능들이 많습니다. mybatis를 사용하면 프로그램에 있는 sql 쿼리들을 한 구성파일에 넣어 프로그램 코드와 sql을 분리할 수 있다는 큰 장점을 가집니다. ( 처음 써봤는데 자바 코드에 쓰지 않고 따로 mapper에 모아 관리하니 아주 편리했습니다. ) resultT..

Spring 2021.08.05

spring responsebody, get/post mapping

2021.08.04 낮에 계속 자다가 저녁부터 컴퓨터를 켰습니다. 올해 말까지 교내 공모전에 제출해야할 웹 프로젝트를 혼자서 만들어보고 있습니다. 1. Responsebody 서버에서 클라이언트로 통신하는 메세지를 응답(response) 메시지라고 합니다. 웹에서 새로고침하지 않아도 이루어지는 동작들은 대부분 비동기 통신으로 이루어집니다. 비동기 통신을 하기 위해서는 클라이언트에서 서버로 메세지를 보낼 때, 본문에 데이터를 담아서 보내야합니다. 이때 본문이 body입니다. 즉, response body는 응답본문입니다. 이때 본문에 담기는 데이터 형식은 여러가지 형태가 있겠지만 대표적으로 사용되는 것이 JSON입니다. 이 어노테이션을 사용하여 자바 객체를 HTTP 응답 본문의 객체로 변환하여 클라이언트로..

Spring 2021.08.04

spring controller, requestmapping, requestparam

2021.08.03 일찍 일어나서 카페를 나왔습니다. 오늘은 annotation들 중 controller, requestmapping, requestparam 에 대해 정리해보겠습니다. 1. Controller @Component 종류 중 하나입니다. 이 클래스가 컨트롤러 클래스임을 나타냅니다. 이 어노테이션을 사용하면 Controller로 사용됨을 spring framework에 알립니다. 2. RequestMapping @Controller 이 된 클래스 하위에 @RequestMapping("/list")가 달린 함수가 있다고 가정할때, @RequestMapping 은 url 매핑입니다. 다시말해 ( ) 안의 경로와 컨트롤러를 이어줍니다. 1) return void 매핑되어 있는 메서드가 return..

Spring 2021.08.03

spring component, autowired, Inject, Controller, Repository

2021.08.02 비가 조금 옵니다. 깜빡하고 우산을 안 가지고 나왔습니다. 비가 그치기 전까지 카페에 있을 예정입니다. 현재 유튜브 '뉴렉처' 님의 spring mvc 강의를 들으면서 정리를 진행하고 있습니다. 이분 수업이 xml -> annotation -> xml + java-config 순으로 전부 돌아가는거 같아서 지금은 수업에서 xml 파일설정부터 배우고 정리하고 있습니다. 수업을 듣다보니 xml이 가지는 설정 정보가 점점 많아지는거 같아 왜 annotation을 쓰는지, 어떤 장점을 가지는지 느끼고 있습니다. 생각난 김에 Annotation에 대해 아는대로 정리해보겠습니다. 1. Annotation이란 spring에서는 보통 annotation으로 많은 설정을 합니다. annotation이..

Spring 2021.08.02