전체 글(363)
-
Springframework @RequestBody 주의사항(?)
저와 같은 바보같은 분은 없을 것이라고 생각이 들지만 제가 겪었던 하나의 문제였기 때문에 작성해봅니다.... 만약 @Controller 클래스에서 요청바디에 넘어온 데이터를 받기위하여 @RequestBody라는 어노테이션을 다들 많이 쓰실 겁니다. 다른 분들은 절대 저와 같은 바보같은 짓을 하시지는 않으셨겠지만, 저는 요청 바디로 넘어온 데이터를 적절히 2개의 객체로 나누기 위해서 메소드 파라미터에 2개의 @RequestBody를 사용하였습니다. 근데 이게 뭐람 에러 뚜뚱... 에러가 발생하였습니다. 무슨 에러인가 막 찾아보고 고민하던 중에 중요한 사실을 알게되었습니다. 요청 바디로 넘어온 데이터를 받기위해 @RequestBody를 사용하는데 이 어노테이션은 스트림을 이용하여 요청바디의 데이터를 불러 온..
2018.09.30 -
Solr7.4 Tagger Handler (NER,Named-Entity Recognition)
Solr 7.4.x version의 Tagger Handler를 이용한 NER(Named-Entity Recognition)NER이란 자연어에서 뜻이 있는 단어를 뽑아내는 것이다. 챗봇처럼 자연어와 관련있는 기술에서 사용되는 기능인데, 예를 들어 "피자 주문할게요" 라는 질문이 있다. 이 문장에서 유추해 볼 수 있는 것은 "피자 주문" 이것을 더 보편화시켜 보면 "메뉴 주문"이라는 사용자질의 "의도"를 알 수 있다. 만약 "햄버거 주문할게요"라는 질의가 있으면 이 또한 "메뉴 주문"이라는 의도라는 것을 유추할 수 있다. 그럼 사용자가 어떠한 메뉴를 주문한다는 것은 알겠는데 그럼 그 메뉴가 무엇인가? 이러한 것이 챗봇에서는 NER이라는 기술로 추출해 낼 수 있는 단어라는 것이다. "피자 주문할게요"라는 질..
2018.09.22 -
springframework(스프링) Controller 작성전략(제네릭스,매핑정보상속)
모든 컨트롤러의 중복된 로직 코드량 확줄여버리는 코딩전략, 제네릭스와 매핑정보 상속을 이용한 컨트롤러 작성전략 웹개발을 하면서 지겹도록 작성하는 코드가 CRUD 관련 코드이다. 매번 똑같은 패턴이며 도메인 오브젝트만 바뀔뿐 딱히 로직이 크게 차이가 없다. 그렇지만 우리는 서비스 클래스는 물론 컨트롤러의 코드에 CRUD코드가 많이 중복되며 대부분 서비스클래스에게 작업을 위임해주는 작업뿐이다. 그렇다면 어떻게 중복된 것을 최대한 배제시킬 수 있을까?그것이 바로 제네릭스를 이용한 상속 전략이다. 바로 예제 코드로 넘어가면, 123456789101112131415161718192021222324252627282930313233343536373839package com.toby.spring.controller; ..
2018.09.20 -
SVN 사용법(trunk,branches,tags 용어설명 및 생성,사용전략 설명)
MacOS 환경에서 진행하였습니다. 이전 글들에서 ubuntu 환경에서 svn을 설치하는 방법과 이클립스와의 연동을 설명하였습니다. 이제는 svn 사용 방법 혹은 전략 설명입니다. 진행하기 앞서 용어 설명을 하자면, 1)trunk : 기둥이 되는 저장소(폴더)입니다. 즉, 나무로 따지자면 기둥이 되는 것입니다. 이것을 형상관리로 얘기하자면 첫 소스를 svn에 import할때, trunk에 업로드합니다. 그 이후에 나무의 기둥이되는 trunk에서 가지를 뽑아 수정을 하게되는 것이 braches라는 개념(하나의 프로젝트에서 수정되는 부분만 뽑는 것이 branche)입니다. branches들을 수정하였다면 이 수정된 소스를 merge하는 저장소가 trunk입니다. 모든 수정이 commit되면 최종이 되는 녀석..
2018.09.19 -
Solr&Zookeeper(솔라&주키퍼) cloud 환경 구성
Solr&Zookeeper(솔라&주키퍼) cloud 환경 구성 Mac OS 환경에서 작성되었습니다. solr와 zookeeper를 연동하여 cloud 환경구성하기 입니다. 우선 진행하기 전에 수정 혹은 생성 되어야할 설정 목록입니다. 1)solr.xml : solr cloud를 이루는 solr instance에 관한 설정파일입니다.2)zoo.cfg : zookeeper 관련 설정파일입니다.3)collection config file : solr collection들이 가지게 될 schema.xml,solrConfig.xml 등의 파일이 들어가는 config file입니다. 이 파일은 zookeeper에 upconfig하여 모든 solr instance들이 공유하게 됩니다.4)zooServer Dir : ..
2018.09.13 -
tomcat WAS에 spring(spring boot) 여러개의 war파일 배포(여러개 context)
tomcat WAS에 spring(spring boot) 여러개의 war파일 배포(여러개 context) Mac OS 기준에서 작성되었습니다.(tomcat이 설치되었다는 가정) 하나의 웹사이트가 여러개의 war파일로 되어있고, 그러한 war파일들의 통신으로 이루어지는 웹사이트일 경우의 was 배포입니다.(각 war의 was 포트를 다르게 가져갈 경우) 만약 배포할 프로젝트가 spring boot project라면 pom.xml에서 embbed was를 사용하지 않는 설정을 넣어주어야합니다. org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.springframework...
2018.09.12