본문 바로가기

분류 전체보기109

[자바로 스프링 구현하기] 1. IoC 컨테이너 [SpringRealize 프로젝트] - 자바로 스프링 프레임워크 구현하기 스프링을 이해하기 위해 자바 코드로 스프링을 직접 구현해가는 과정이다. Spring Framework Core 공식 문서(영문)를 통해 공부하였으므로 의역이 있다. 0. 프로젝트 생성하기 IDE는 이클립스를 이용한다. File - New - Project... - Spring Starter Project - Next 클릭 ... 를 통해 Spring Legacy Project를 생성했다. 최상위 패키지명은 com.kdh.common 으로 지어주었다. 1. Service, Dao 클래스 만들기 먼저 자바 빈으로 등록할 클래스들을 생성한다. 학생 서비스 인터페이스, 학생 다오 인터페이스 및 각각의 구현체가 필요하다. dao 패키지 -.. 2021. 5. 29.
[Spring] 해시태그 검색 데이터베이스 설계 및 쿼리 구성 프로젝트에 해시태그 검색을 구현 중이다. 하나의 Study 객체가 여러 해시태그에 연결될 수 있어야 한다. (여기서 스터디란 여러 사람들의 모임이다. 공부할 때 모이는 그 스터디 맞다.) 가장 먼저 떠오르는 것은 (스터디), (해시태그), (스터디-해시태그) 이렇게 3개의 테이블을 구성하는 것인데, 이 방식으로 구현 가능하리란 판단이 들었고 만들기 시작했다. 테이블 STUDY HASHTAG_RELATION HASHTAG 역할 스터디 entity만 담는 테이블 스터디 : 해시태그 1 to N 관계의 테이블 해시태그만 저장한 테이블 STUDY 테이블 : 스터디 번호, 이름, url 등 오로지 스터디 관련 정보만이 담겨있다. 해시태그 관련 정보를 담는 컬럼은 없다. HASHTAG_RELATION 테이블 : 스.. 2021. 5. 27.
[Javascript] 페이지 이동 후에도 값 유지하기 자바스크립트 변수에 저장해둔 값을 페이지 이동 후에도 이용하고 싶을 때가 있다. var something = ... 방식으로 저장해둔 값은 페이지 이동 후에는 사라지기 때문에 다른 방식을 이용해야 한다. 이 경우 쿠키를 이용하는 것이 일반적으로 알려져 있지만, 그 외에도 다른 방법을 찾아보았다. 1. window.localStorage 브라우저를 재실행해도 값을 유지하는 저장방식이다. 이 점이 장점으로 작용하는 경우도 있겠지만, 나는 그 장점에 비해 단점이 더 크다고 생각한다. 페이지를 보여주는 것이 자바스크립트의 역할이라는 점을 고려했을 때, 브라우저를 재시작해도 유지되는 변수는 자바스크립트 단에서 건드리지 않아야 한다는 것이 내 생각. 그래도 일단은 방법을 정리해둔다. // 변수의 저장 var myN.. 2021. 5. 27.
[SpringRealize] 스프링 Core 이해하기 - IoC Container Spring 공식 문서(영문)를 통해 공부한 내용이므로, 의역의 가능성이 있습니다. 1. IOC 컨테이너와 Bean 이번 챕터는 스프링 프레임워크 중 제어의 역전 (IoC - Inversion of Control)에 대해 다루어본다. IoC는 Dependency Injection으로도 알려져 있다. DI는 개체가 자신의 역할 일부를 타 개체에 넘기고, 대신해준 역할의 결과값만을 받아오는 것을 의미한다. org.springframework.beans org.springframework.context 위 두 가지가 스프링 프레임워크 IoC 컨테이너의 기본 패키지이다. BeanFactory인터페이스가 모든 종류의 개체에 대한 설정을 제공하며, ApplicationContext 는 Beanfactory의 서브 .. 2021. 5. 23.
[Spring] html의 time값을 Controller에서 String으로 받기 form에 아래와 같이 을 넣어서 submit하려는데, 제대로 전송되지 않았다. 아래와 같이 Study클래스의 ModelAttribute로 받아오려 했다. Study 클래스의 필드변수에는 start, end의 String이 있다. 하지만 이상하게 toString을 해보니 ( ... start=, end=) 라고 콘솔에 출력되었다. null도 아니고 그냥 비어있는 상태. 그래서 아래와 같이 start 값만 따로 받아오기 위해 실행했는데, 갑자기 값이 정확하게 넘어오기 시작했다. 약 1시간을 새로고침하며 반복했는데 계속 안나왔었다. 그런데 위 코드를 추가하니 갑자기 출력되는걸로 봐서는 일시적인 오류라기보단 톰캣 or 이클립스 오류였던 듯. 2021. 5. 20.