일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 자바
- mybatis
- 캘리그라피
- 좌표변환
- shortcuts
- 사진
- join
- mysql polygon
- spring
- 큐브리드
- Query
- JPA
- mysql gis
- json parser
- 엽서
- 위경도계
- 여행
- 단축키
- JSON 변환
- 하이버네이트
- QGIS
- IntelliJ
- Hibernate
- 쿼리
- mybatis polygon
- Java
- mybatis polygon mapper
- 좌표계변환
- cubrid
- 파이어폭스41
- Today
- Total
목록공부 (19)
쏘댕
지도기반 검색을 구현하면서 새로운걸 많이 알게되는데, MySQL에 폴리곤 타입이 있다니! Polygon 과 MultiPolygon에서 사용할 수 있는 기능들은 아래를 참고하면 된다. https://dev.mysql.com/doc/refman/5.7/en/gis-polygon-property-functions.html 일단 내가 하고자 하는건 폴리곤 타입의 구역 정보(zone)를 DB에 저장해두고 그걸 지도에 예쁘게 보여주는 것 특정 좌표가 속하는 zone을 찾는 것 예를들어 시/도의 폴리곤들을 zone에 저장해두었다면, "잠실어딘가"의 좌표로 질의해서 "서울특별시"라는 zone 정보를 찾는 것 zone에 해당하는 장소 데이터(place)를 검색하는 것 장소데이터는 이미 가지고 있는 정보이고, 좌표를 포함..
json 파싱할 일은 수두룩 빽빽인데, 매번 귀찮으니 util로 만들어놓으면 편하다. 몇 번 만들면서 조금씩 변하기는 했는데, 어쨌든 toObject는 필수템! 이렇게 쓰니 다른 프로젝트 개발하다 json 유틸없으면 파싱하는 법이 잘 생각 안나서 찾아가면서 만들어야 하는게 함정... ㅋㅋㅋㅋㅋ package com.ssodang.common.util; import com.ssodang.exception.JsonUtilException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectWriter; ..
요즘 좌표들이랑 친구하는 중인데..... 공공데이터들은 주로 공간정보를 shp라는 파일로 제공한다. 그냥 위경도 좌표이면 참 좋으련만... ㅋㅋ 변환하는 툴을 이리저리 찾다가 QGIS를 발견했다. 다운로드: https://qgis.org/en/site/forusers/download.html Download QGIS An experimental release can be found in the Play Store qgis.org 내가 필요한건 공공데이터에서 제공하는 학구도에 대한 데이터(.shp 파일)를 좌표계로 변환하는 것 예) 초등학교 통학구역 데이터 : https://www.data.go.kr/dataset/15039121/fileData.do 불러오는 중입니다... QGIS를 실행하면 아래와 같은..
엄청 오랜만에 기록! WebMvc 설정 잡을때 당연하게 WebMvcConfigurerAdapter 를 썼었는데... 언제 Deprecated 가 된건지.... ㅎㅎ WebMvcConfigurer 로 바꿔야하나 했는데, 당장 바꾸기에 수정할게 많은 참에 WebMvcConfigurationSupport 로 바꾸면 되는걸 깨달았다. 기록 끝! ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
API 결과 받는지 등등 테스트가 필요할 때 서버에 들어가서 아래와 같이 curl을 잘 날리는데curl http://ssodang.tistory.com?param=test어쩐지 POST로는 날려본적이 없었따..ㅎㅎ그래서 찾다가 나같은 바보를 위한 꿀팁 발견!출처: http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Tip/curl 프로토콜 디버깅 --verbose와 --trace, --trace-ascii를 이용해서 HTTP 데이터 통신 과정에 대한 상세정보를 얻을 수 있다. --verbose로 불충분하다면 --trace-ascii를 사용하자. # curl --trace-ascii debug.dump http://www.test.co.kr/testpage디버깅..
책이랑 인터넷에 많이 나와있는 하이버네이트util을 보고 만들었는데,4버전부터는 buildSessionFactory()가 deprecated되었다!! return new Configuration().configure().buildSessionFactory();줄쳐진거 굉장히 싫어해서.... 없애버리려고 찾아보다가 고쳤땅이전 글의 HibernateUtil에서 buildSessionFactory() 메서드만 변경!private static SessionFactory buildSessionFactory() throws ExceptionInInitializerError { try { // Create the SessionFactory from hibernate.cfg.xml Configuration config..
Spring data JPA를 적용해보겠다고 별짓을 다했는뎅 어디가 어떻게 어디서부터 잘못된건지 설정이 꼬여가지고 안된다...... 다음번에 새로운 마음으로 다시해야지.................. 이번엔 쪼인을 해보쟈 일단 지난번에 test_table 추가에 이어서 조인 테스트를 위한 테이블 추가!(이름이 온통 엉망인데... 좋은 이름이 안생각난다.. @_@) 테이블 추가했으니 모델도 추가!public class JoinTest { private long id; private long testId; private JoinKeyword joinKeyword; public enum JoinKeyword { RELATION_A, RELATION_B } /* getter, setter */ } TestMod..
하이버네이트로 개발하기 위해 테스트 테이블을 만들고, CRUD를 실행해보쟈DB는 CUBRID 이름 그대로 test_table을 만들고 몇가지 앞으로 필요한 데이터형을 확인하기 위해 bigint, varchar, datetime을 사용했다.test_enum은 java enum을 넣기 위해 추가했다. [!] 참고 처음에는 reg_date 컬럼명을 그냥 date로 했었다.근데 요게 테이블 생성은 되는데, 하이버네이트가 만든 쿼리를 날리니까 에러가 난다 ㅎㅎ TestModel 클래스는 똑같이 매핑되도록 아래와 같이 한다.(생성자는 편의를 위해서 만들어둠!)TestEnum은 그냥 Enum이니까 생략 TestModel.java public class TestModel { private long id; private..
ID를 표시할때 ssoda**와 같이 마스킹 처리를 하는 Util을 구현했다. ID는 핸드폰번호 또는 메일 주소의 포맷을 가지고 있다. 이메일 주소는 {userId}@gmail.com에서userId.length를 기준으로 세글자 초과인 경우 뒤 세자리를 마스킹 처리하고,세글자인 경우 뒤 두글자만 마스킹,두글자 또는 한글자인 경우 모두 마스킹 처리했다. 핸드폰 번호는 가운데 3자리 또는 4자리를 마스킹 처리했다.+ 핸드폰 번호가 011, 016.. 등등 다 010으로 통합한다고 했던거 같은데, 아직 남아있는지 어떤지 몰라서 일단 기존 포맷 " 011-000(세글자)-0000 "이랑 요즘(?) 번호 포맷 " 010-0000-0000 " 둘 다 허용되도록 했다. 예외의 경우에는 인풋으로 넘어온 값을 그대로 리..
#Java #Spring#Maven 사용자 입력 가능한 input, textarea 등에 스크립트 적용 불가하도록 XSS filter가 필요해서,owasp-java-html-sanitizer를 이용하여 input 입력 받은 값들의 태그를 모두 제거하도록 하였다. pom.xml에 디펜던시 추가! com.googlecode.owasp-java-html-sanitizer owasp-java-html-sanitizer r239 XssStringConverterUtil.java 생성!import org.owasp.html.Handler; import org.owasp.html.HtmlPolicyBuilder; import org.owasp.html.HtmlSanitizer; import org.owasp.html..
기존에 textarea로 되어있던 부분에 네이버 스마트에디터를 붙인 뒤 사진과 파일을 업로드 하고,사진은 본문에 보여주고 파일은 링크를 걸어주도록 구현! - 스마트 에디터 추가에 대한 내용은 다음에 -Content ${post.contents} 요렇게 하면 스마트에디터 모양새로 iframe이 뜨고 거기서 쓴 값을 요 textarea 값에 html형태로 저장해서 등록한다. 요 에디터에 사진을 넣는 부분은 스마트에디터에 이미 있지만 그냥 파일 올리는걸 어차피 구현했으니까 그걸로 했고 파일은 올리고서 파일링크를 본문에 첨부파일 )) { // 업로드 실패시 ! alert(responsemsg); } else { jQuery("#input_"+type).val(''); jQuery("#uploadButton_"+..
테이블에 매칭되는 각각의 클래스를 만들었지만, 테이블 구조와 로직 처리에 필요한 구조는 다르다. 두 테이블에 해당하는 두 클래스 중,한 클래스가 다른 클래스를 인자로 가지고 있는 경우JOIN으로 한개의 쿼리에 가져오고 싶다! class는 다음과 같다. Person.classpublic class Person {private String id;private String name;private int age;private Car car; /* * getter/setter 생략 */ } Car.classpublic class Car {private String ownerId;private String modelNo;private String color; /* * getter/setter 생략 */ } sql ..
REST API 디자인 가이드 [출처] http://bcho.tistory.com/954 REST API 디자인을 보면, REST 사상에 맞춰서 제대로 디자인 (CRUD를 HTTP method에 맞춘)하기도 어렵고,URI Convention등이나 보안, 버전 관리등 고려할 사항이 많다.이번 글에서는 REST API를 디자인에 대한 가이드를 소개하고자 한다. 동사보다는 명사를 사용하자. URL을 심플하고 직관적으로 만들자. REST API를 URL만 보고도, 직관적으로 이해할 수 있어야 한다.URL을 길게 만드는것 보다, 최대 2 depth 정도로 간단하게 만드는 것이 이해하기 편하다. /dogs/dogs/1234 URL에 동사보다는 명사를 사용하고,REST API는 리소스에 대해서 행동을 정의하는 형태를..
[출처] http://www.journaldev.com/2676/spring-mvc-interceptors-example-handlerinterceptor-and-handlerinterceptoradapterPankaj April 7, 2014 SpringSometimes we want to intercept the HTTP Request and do some processing before handing it over to the controller handler methods. That’s where Spring MVC Interceptors come handy.Just like we have Struts2 Interceptors, we can create our own interceptors in ..
[출처] http://hyeonstorage.tistory.com/274 Linux 문서편집기 vi, vim 명령어 정리 1. vi 실행하기 명령어 동작 vi file file을 연다 vi file1 file2file1 과 file2 를 차례로 연다 view file file을 읽기 모드로 연다 vi -R file file을 읽기 모드로 연다 vi + filefile을 열때 커서가 file 본문의 마지막 행에 위치한다. vi +n file file을 열어 n행에 위치한다. vi -r file손상된 파일 회복 2. 입력모드 전환 명령어 명령어 동작 i 커서 있는데서 입력모드 전환 I커서 왼쪽, 행의 처음에 몬자 삽입 a 커서 있는 줄 끝에서 입력모드 전환 A커서 오른쪽, 행의 끝에 문자 삽입 o 커서 있는..