위도와 경로는 무엇일까?지금 보이는 세계지도에서 우리나라는 어디에 있다고 표현할 수 있을까?지도에 있는 어떤 나라와 어느 지역의 위치를 정확히 설명하는 것은 매우 어렵다.그래서 만든 것이 위치를 나타내는 좌표, 위도와 경도이다. 위도는 지구에서 위치를 설명하기 위해 만든 가상의 가로좌표이다.위도의 기준은 적도(위도 0)이고 적도를 기준으로 북쪽은 북위, 남쪽은 남위로 표현한다. 경도는 본초자오선(영국을 지나는 세로선)을 기준으로 하는 세로좌표이다.경도는 지도에서 영국을 기준으로 동쪽은 동경, 서쪽은 서경이라 부른다.수많은 나라 중에 굳이 영국을 기준으로 정해진 이유는 위도와 경도를 정할 때 영국이 세계에서 가장 강한 나라였기 때문이라고 전해진다. 그렇다면 우리나라의 위도와 경도는?우리나라의 위도와 경도..
Spring Boot는 별다른 설정 없이도 root를 기준으로 아래의 경로에서 정적 콘텐츠를 제공한다. classpath:/static classpath:/public classpath:/resources/ classpath:/META-INF/resources resources 폴더를 살펴 보면 static과 templates 폴더로 나뉘어 있는 것을 알 수 있다. 이는 스프링 버전이 올라가면서 jsp 대신에 thymeleaf 쓰게됨으로 템플릿 파일들을 두는 곳이 생기게 되었다. 그러므로 css나 js파일들은 static 폴더에 넣고 템플릿파일들은 templates 폴더에 넣어서 사용하면 된다. 실제 경로를 호출해보면 /resources/ 또는 /resources/static/ 을 경로에 붙이지 않아도 ..
개발자가 디자이너와 코더 없이 관리자페이지를 꾸미기란 여간 힘든 일이 아니다. 하지만 부트스트랩을 이용한다면 디자인,퍼블리싱 시간도 상당히 단축시키고 생각보다 훌륭한 사이트를 만들 수 있다. Bootstrap이란? 부트스트랩은 웹사이트를 쉽게 만들수 있게 도와주는 css.js 프레임워크이다. 약간의 html 지식만 있다면 코드하나로 손쉽게 휴대폰,태블릿,pc까지 작동하게끔 사이트를 제작하게 해준다. 부트스트랩의 본래 이름은 트위터 블루프린트. UI 프레임워크가 정형화되지 않아 유지보수에 어려움을 겪었던 트위터 개발자 마크 오토가 이를 개선하기 위해 만들었다. 그 이후 여러 개발자들이 개발에 참여했고 현재는 v5.3.2 버전까지 출시되었다. Bootstrap 소스 제공 사이트 부트스트랩 소스를 제공해 주는..
현재 개발세팅은 Spring Boot, gradle 환경에 mybatis, jsp를 사용하고 있다. 세팅하는 방법은 아래의 블로그를 참고하도록 하자. [Spring Boot , gradle ] mybatis 환경 설정 방법 Mybatis란? 마이바티스는 아파치 스포트웨어 재단에서 만든 자바 퍼시스턴스 프레임워크이다. 마이바티스는 xml 서술자나 어노테이션을 사용해 저장 프로시저나 sql문으로 객체들을 연결시킨다. letsplaycoding.tistory.com 데이터베이스 도구 및 SQL 플러그인 활성화 일단 인텔리제이에서 데이터베이스 도구를 사용하려면 SQL 플러그인을 활성화를 시켜야 사용할 수 있다. 활성화시키는 방법은 [View]-[Tool Windows]- [Database] 메뉴를 클릭하자. [..
Mybatis란?마이바티스는 아파치 스포트웨어 재단에서 만든 자바 퍼시스턴스 프레임워크이다.마이바티스는 xml 서술자나 어노테이션을 사용해 저장 프로시저나 sql문으로 객체들을 연결시킨다.특징으로는 기존의 ibatis보다 간결하고 유연한 설정방식을 제공한다. build.gradle에 JDBC 라이브러리 추가 implementation 'org.springframework.boot:spring-boot-starter-jdbc' bulid.gradle 파일에 spring-boot-starter-jdbc 라이브러리와 db 종류에 따른 jdbc 드라이버도 추가해준다. - mssql runtimeOnly 'com.microsoft.sqlserver:mssql-jdbc'- mysql (spring boo..
SSLHandshakeException 오류 Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 데이터베이스 연결을 할 때 SSLHandshakeException 오류가 나는 경우가 있다. 원인은 자바 1.8.0_291 버전부터 보안적인 이유로 TLS 1.0, TLS 1.1을 비활성화되었기 때문이다. 오류 해결방법 1. JAVA 버전 다운그레이드. 2. TLS를 사용하도록 JDBC 연결 구성하기 3. db 커넥션..
보통 Spring boot로 개발할때에는 환경설정을 통해 브라우저를 새로고침하면서 수정된 소스를 확인해본다. [spring boot] JSP 수정시 바로 반영 적용하기 spring boot 환경을 세팅하고 jsp로 개발 세팅을 하다 보니 불편한 점이 있었다. 그건 바로 소스를 수정해도 바로 적용이 되지 않는 JSP auto reload 문제. Application을 재시작해주면 바로 되긴하지만 여간 letsplaycoding.tistory.com 하지만 devtools 라이브러리에는 이 귀찮은 동작을 안해도 되는 꽤나 괜찮은 기능이 있다. Automatic Restart와 Live Reload. 이 기능은 서버를 재시작하지 않아도 웹브라우저에서 변경 사항을 바로 확인할 수 있다. 이 기능을 해보기 위해 ..
spring boot 환경을 세팅하고 jsp로 개발 세팅을 하다 보니 불편한 점이 있었다. 그건 바로 소스를 수정해도 바로 적용이 되지 않는 JSP auto reload 문제. Application을 재시작해주면 바로 되긴하지만 여간 불편한 게 아니었다. 이 문제에 대해 검색을 해봤더니 application 환경 설정만으로 아주 간단하게 문제 해결이 가능했다. Spring Boot 2.x 이하 server.jsp-servlet.init-parameters.development=true Spring Boot 2.x 이상 server.servlet.jsp.init-parameters.development=true Application.properties 이나 application.yml 파일에 한 줄만 추가..
java에서 html을 엑셀로 출력하는 방법은 여러 가지가 있다.(poi 등등) 오늘은 그중에서 header만 간단히 변경해 엑셀이나 한글, 워드로 출력하는 방법을 알아보자. 출력해 볼 HTML office print 제목 내용 ${list.title} ${list.content} 출력할 내용은 db에서 불러왔고 jstl을 이용해 테이블 형식으로 만들었다. 더 예쁘게 스타일을 줄 수 있지만 일단 선 구분을 하기 위해 table에 border 값 1만 추가했다. 문서 상단에 다운로드 선언하기 jsp 상단에 헤더값을 선언한다. filename은 출력되는 파일이름이니 본인의 입맛에 맞게 변경하면 된다. 한글이 깨진다면 charset값을 변경해 주자. charset=utf-8, charset=euc-kr (js..
MARIA DB란?Maria DB는 무료 오픈소스 관계형 데이터베이스(RDBMS)이다. 마리아라는 이름은 MySQL을 개발했던 책임 개발자의 2번째 딸의 이름에서 가져왔다고 전해진다. 또한 로고는 MySQL의 상징인 돌고래와 비슷한 강치이다.MARIA DB의 탄생비화MySQL이 오라클에 인수된뒤 MySQL은 8.0버전이 릴리즈 되었다. 하지만 오라클은 라이센스를 유료화 했고(학생, 비상업용 제외) MySQL의 창업자중 한명인 몬티 와이드니스는 이를 못마땅해 한다. 결국 MySQL 출신 개발자들이 따로 나와 재단을 세우고 만든것이 바로 MariaDB 이다. MARIA DB와 MY SQL의 호환성초창기 버전인 MariaDB 5.5는 MySQL 5.5 버전을 기반으로 만들었기에 거의 흡사하고 모든 기능이 호환..
현재 내가 세팅한 개발환경은 spring boot 2.7.14, java 11, gradle, intelliJ이다. build.gradle 설정 plugins { id 'java' id 'war' id 'org.springframework.boot' version '2.7.14' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'com.boot' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '11' } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-..
logback 이란? logback은 log4j의 후속버전으로 logging 대표적인 라이브러리이다. 설정은 간단히 xml파일로 가능하며 적은 메모리를 점유하고 빠른 이행이 특징이 있다. 스프링 부트 환경에서 logback 로그를 찍어보기 implementation 'org.springframework.boot:spring-boot-starter' spring-boot-starter 에는 기본적으로 starter-logging이 포함되어 있다. Gradle dependencies를 살펴보면 starter-logging안에 logback,log4j,slf4j가 포함되 있는 것을 확인 가능하다. 사용하고 있지 않다면 logging 사용을 위해 build.gradle 파일에 라이브러리를 추가해 준다. depe..