본문 바로가기
반응형

개발관련37

MariaDB 기본 character set 설정 mariaDB는 리눅스와 윈도우에서 기본적인 character Set이 달라서 설정이 필요하다.또한 utf로 설정해주어야 한국어, 영어, 특수문자 등 다양한 문자들이 깨지지 않고 데이터베이스에 저장 될 수 있다. [mysqld]lower_case_table_names=2datadir=C:/Program Files/MariaDB 10.10/dataport=3306innodb_buffer_pool_size=2035Mcollation-server=utf8mb4_unicode_cicharacter-set-server=utf8mb4[client]port=3306plugin-dir=C:\Program Files\MariaDB 10.10/lib/plugindefault-character-set = utf8mb4[my.. 2024. 11. 20.
하루만에 그누보드를 Cafe24에 배포하기 챌린지 오늘은 php를 단시간에 습득하고 실제 운영까지 해볼 수 있도록 셋팅하는 것이 목표입니다. 이를 수행하기 위한 계획과 과정들을 상세히 정리해보고자 합니다. 프로젝트 시작 전 알고가기 php를 사용하는 이유 https://www.elancer.co.kr/blog/view?seq=162 php는 인터프리터 언어로 tomcat 같은 WAS가 굳이 필요하지 않다. cafe24 배포시 /www/폴더 하위에 index.html파일 및 별도의 파일들을 셋팅하면 호스팅 끝 Cafe24에 설치하기 https://sir.kr/so_phpframework/106?sfl=wr_subject%7C%7Cwr_content&stx=cafe24 cafe24는 PHP 7.4, 7.3, 7.0, 5.5 버전을 지원한다. 이 중 가장 최.. 2023. 11. 16.
JAVA) 메모리 누수 OutOfMemory: MetaSpace Cafe24 Jsp Tomcat을 사용하던 중 OutOfMemory오류가 발생하였는데, [톰캣이 설치된 경로]/tomcat/bin/catalina.sh 파일에 아래와 같은 옵션을 추가해 주었더니 해결되었다. JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+DisableExplicitGC" Reference 메타스페이스에 대한 설명 https://obv-cloud.com/41 Java - Metaspace란? Metaspace란? Metaspace는 Java .. 2023. 9. 5.
JAVA) Apache Poi 엑셀다운로드 - 페이지 레이아웃 설정하기 안녕하세요 오놀은 엑셀다운로드시 페이지 레이아웃을 설정하는 방법에 대해 알아보겠습니다. /* * 엑셀파일을 읽어서 workbook생성 * 신규파일을 생성하고싶다면 워크북 생성자에 파일객체를 넣지 않아도 됩니다. */ File file = new File("[엑셀파일의 경로를 입력해주세요.]"); XSSFWorkbook workbook = new XSSFWorkbook(file); Sheet sheet = workbook.createSheet(); //용지 여백설정 sheet.setMargin(PageMargin.TOP, 1.9); sheet.setMargin(PageMargin.BOTTOM, 1.9); sheet.setMargin(PageMargin.LEFT, 1.2); sheet.setMargin(Pa.. 2023. 8. 3.
개인정보 마스킹 처리 금융감독원 개인정보 마스킹 가이드 https://m.blog.naver.com/0718e/221565600919 개인정보 마스킹 홈페이지 가이드, 기준 홈페이지에서 개인정보를 식별하지 못하게 하기 위해서 마스킹 처리를 해야하는데요, 마스킹 처리의 기준과... m.blog.naver.com 2023. 2. 27.
[Spring Security] SSL인증서 설치 후 세션보안 설정하기 (Spring5 servlet 3.1) http에서 https로 변경했다고 해서 모든 보안문제가 해결된 것은 아닙니다. 클라이언트와 서버가 데이터를 주고 받을 때 암호화가 적용되어 내용을 보호할 수 있지만, Session 탈취문제를 완벽하게 보호하지 못합니다. 그래서 조금이나마 보안을 강화하기 위한 설정들을 해보았습니다. 1. HTTP에서 HTTPS로 리다이렉트 처리 ... ... 위 코드는 Spring Security의 Security-context.xml에 설정한 일부 코드입니다. Security를 이용하여 https연결설정을 해볼까요? 서버의 설정파일인 server.xml에서 Connector 설정을 확인하시거나, 어플리케이션에서 정의한 포트번호를 확인하여, http포트와 https포트를 지정해줍니다. requires-channel을 h.. 2023. 2. 13.
[MariaDB] Window에서 테이블 생성시 대소문자 구분하기 MariaDB version : 10.10.2-MariaDB, for Win64 안녕하세요. 오늘은 테이블명 대소문자 구분하는 법을 포스팅해보겠습니다. 설정하기 MariaDB의 설정파일(기본경로 : C:\Program Files\MariaDB 10.10\data\my.ini)에 들어가셔서 lower_case_table_names설정을 추가해주면 됩니다. lower_case_table_names = 0 : 테이블 생성 및 조회 시 대·소문자 구분한다.(리눅스 기본값) lower_case_table_names = 1 : 입력 값이 대·소문자든 소문자로 인식 소문자 인식 파일 생성 (윈도우 기본값) lower_case_table_names = 2 : 윈도우에서 대·소문자를 구분해서 테이블생성 (맥킨토시 기본값.. 2023. 2. 4.
mysql engine, innoDB와 MyISAM차이점 MariaDB또는 MySql을 사용할 때 고려해봐야 할 사항이다. 나는 innoDB에서 primary Key를 두개의 컬럼을 지정하려고 했고, 그 중 하나에 auto Increment를 지정하려고 했다. 하지만, innoDB에서는 auto Increment를 지정한 컬럼만 primary Key로 지정할 수 있다고 한다. 그런데 엔진을 MyISAM으로 바꾸기만 해도 이것이 가능하다고 하는데, 왜 그럴까? innoDB는 대용량 데이터의 수정이 잦은 곳에서 사용하기 좋은 엔진이고, MyISAM은 데이터를 자주 읽는 경우에 사용하는 것이 좋다고 한다. 내가 변경하고자 했던 테이블은 다행히도, 읽기를 자주하는 테이블이라서 원하는대로 설정할 수 있었다. https://stackoverflow.com/question.. 2023. 1. 4.
[springBoot] mybatis 상수 사용하기 (application.properties) 개발환경 springboot 3.0.0 (spring boot starter를 사용하였습니다.) SpringBoot로 웹사이트를 개발중인데, 날짜를 조회하는 모든 곳에서, 동일한 형태로 조회하고 조회된 날짜를 javascript로 변환하여 사용하고 싶었습니다. 그러기 위해서는, 날짜 형식을 한 곳에다가 설정해두면 좋겠다고 생각했습니다. SELECT REG_DATE, DATE_FORMAT(REG_DATE, '%Y-%m-%d %H:%i:%s') FROM STUDENT; 예를들어보자면, 위와같은 쿼리가 있는데, REG_DATE를 조회하는 부분에서 '%Y-%m-%d %H:%i:%s'를 매번 적어주어야 했습니다. 그런데 만약에 이 형식을 수정하고 싶으면, 모든 쿼리를 다 수정해 주어야 하기 때문에, 하나의 변수로.. 2023. 1. 1.
Chrome 개발자도구, 이벤트 발생 내역 확인하기 크롬개발자도구에서 간단하게 이벤트 발생 내역을 확인하는 방법을 알아보자. Console에다가 특정명령어를 입력하면, 현재 페이지에서 발생하는 모든 이벤트가 콘솔에 찍힌다. 아래에서 자세히 확인해보자. 콘솔에 이벤트 내용 찍기 monitorEvents($0) 콘솔에서 이벤트 내용 찍는 것 중지 unmonitorEvents($0) 특정이벤트만, 콘솔에 찍게하고 싶은경우 두번째 파라미터에 특정 이벤트를 입력한다. monitorEvents(document.body, 'mouse') https://stackoverflow.com/questions/10213703/how-do-i-view-events-fired-on-an-element-in-chrome-devtools How do I view events fire.. 2022. 12. 28.
mariaDB 한국어 설정 mariaDB에서는 utf8을 사용하려는 경우, utf8mb4을 추천하는 것 같다. 아래처럼 설정해주자 [mysqld] ... collation-server=utf8mb4_general_ci character-set-server=utf8mb4 [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 2022. 12. 18.
SpringBoot / mybatis log출력 spring boot에서 실행되는 쿼리 로그를 확인하고 싶어서 아래와 같은 설정들을 추가하였더니 쿼리 로그가 정상적으로 출력이 되었습니다. logging.level.org.springframework.web=debug logging.level.org.springframework=WARN logging.level.com.spring.ibatis.UserMapper=DEBUG logging.pattern.console=%d{YYYY-MM-dd HH:mm:ss} - %msg%n mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl 출력결과 ==> Preparing: SELECT COL1, COL2, COL3 FROM COMMON_.. 2022. 12. 17.
JAVA) 프록시 & HTTPS 언어 : java 안녕하세요. 얼마전, WAS서버에서 프록시를 태워, 타사의 API서버로 연결하는데 있어 많은 어려움을 겪었었는데요, 딱 맞는 해답을 찾을 수 없어서 많은 고생을 했던 기억이 납니다.(불과 몇일전) 그 과정에서 제가 알게된 내용에 대해 말씀을 드리려고 합니다. 먼저 HTTPS의 기초, 프록시란 무엇인지에 대해 설명을 드리고, 문제 상황과 해결방법에 대해 말씀드리겠습니다. HTTPS와 HTTP는 무엇이 다를까요? HTTP는 HyperText Transfer Protocol의 약어입니다. HTML문서를 주고받는 통신 방식이라는 의미입니다. HTTPS는 Secure가 붙은것으로, 보안이 적용된 통신방식이라고 할 수 있겠네요. 보안을 유지하기 위해서 HTTPS는 추가적인 설정이 필요합니다. 가장.. 2021. 11. 15.
JAVA) apache poi - SXSSF NullPointer Exception 오류 해결방법 환경 AWS (리눅스, 도커) SPRING BOOT JAVA 1.8 문제상황 apache poi를 사용하던 중, 대용량 엑셀 다운로드를 구현할 필요가 있어, XSSF에서 SXSSF로 변경하였다. 그런데, 갑자기 발생하는 NullPointerException때문에 고생했다.. Workbook workbook = new SXSSFWorkbook(SXSSFWorkbook.DEFAULT_WINDOW_SIZE); sheet = workbook.createSheet("시트이름"); 두번째라인을 실행하면서 에러가 발생했다. 개발할 때는 윈도우에서 개발했기 때문에 별문제 없이 돌아갔지만, AWS에서 사용하고 있는 docker에서는 폰트 파일이 없어서 발생했다. XSSF를 사용했을 때는 문제가 발생하지 않았지만, SXS.. 2021. 8. 2.
JAVA) apache poi, 엑셀 파일 생성 및 다운로드 하기 안녕하세요. 이번 프로젝트에서는 유난히도 엑셀관련한 작업을 많이 하게 되었습니다. 그래서 준비한 포스팅! 이번에는 엑셀로 데이터를 출력하거나 엑셀 데이터를 읽을 때 사용할 수 있는 라이브러리인 poi에 대해 포스팅 하는 시간을 가져보겠습니다! 자세한 사항은 apache poi 공식사이트를 확인해주세요. Apache POI - the Java API for Microsoft Documents Apache POI - the Java API for Microsoft Documents Project News 20 January 2021 - POI 5.0.0 available The Apache POI team is pleased to announce the release of 5.0.0. This release.. 2021. 6. 26.
Spring에 의해 관리되지 않는 객체, Property 값 주입하기 지금 하려는 작업에서, properties에 정의된 값을 Vo에 정의해주면 매우 작업이 쉽지 않을까? 라는 고민에서부터 이 포스팅은 시작되었다. 똑같은 값을 Dao에 주입할 때는 잘 되는데, Vo에는 적용되지 않았다. 왜그럴까 고민을 하다가 Vo는 Spring에서 관리하지 않는 객체라는 결론을 내게 되었다. 그래서 포기하고 있던 찰나! 동료가 열심히 찾아보다가 해결을 해주었는데, 그 방법이 지금 소개하려는 이 방법이다. PropertiesLoader는 spring을 활용하지 않고 properties를 읽는 방법이다. public class PropertiesLoader { public static Properties loadProperties(String resourceFileName) throws IO.. 2021. 3. 29.
javascript URL객체 총정리 오늘은 URL객체에 대해 알아볼 것이다. Javascript에는 url을 간편하게 다룰 수 있도록 URL객체가 마련되어 있다. 이것을 사용하면 프로토콜, 파라미터, 호스트 네임 변경과 같은 작업을 편하게 할 수 있다. 먼저 아래의 코드를 보자. var url = new URL("http://testurl.co.kr:8080/path/main.html?param1=1&param2=3"); hash: "" host: "testurl.co.kr:8080" hostname: "testurl.co.kr" href: "http://testurl.co.kr:8080/path/main.html?param1=1&param2=3" origin: "http://testurl.co.kr:8080" password: "" pa.. 2020. 12. 18.
java 개발을 더 간편하게 / lombok spring boot나 spring framework를 사용해봤다면 어느정도 어노테이션에 익숙해졌을 것이다. lombok은 어노테이션을 사용하여 코드를 간결화 해주는 라이브러리다. VO나 DTO에는 꼭 필요한 getter와 setter, 그리고 생성자, toString 메소드 등등을 간편하게 설정할 수 있다. 이외에도 부가적인 기능이 있는데 하나씩 확인해보자. 1. Project lombok이란 무엇인가? 공식 홈페이지에서는 롬북을 아래와 같이 설명하고 있다. (번역) 프로젝트 롬북은 편집기에 자동적으로 연결되고 당신의 Java를 빠르게 만들어주는 Java라이브러리입니다. getter, setter, equals와 같은 메소드를 사용하지 마세요, 클래스에 완전한 기능을 갖춘 빌더가 있는 하나의 어노테이션.. 2020. 7. 8.
JAVA) 배포란 무엇이고 어떻게 할까? jar? war? java를 사용하여 구현한 프로그램을 알맞은 형태로 변환하여 환경에 맞게 설정해야 만든 프로젝트를 실행시킬 수 있는데, 이 일을 배포라고 한다. 이 배포를 통해서 소중한 프로그램을 세상에 알릴 수 있다. 그렇다면 배포는어떻게 하는 것일까? 1. 프로젝트 추출 방법(Export) jar는 java archive의 줄임말이며, war는 web Application archive의 줄임말이다. archive는 압축일을 의미하므로 jar는 자바 압축파일, war는 웹 어플리케이션 압축파일이라고 할 수 있다. 자바 어플리케이션 추출 자바 어플리케이션은 java만 설치되어 있다면 실행할 수 있는 프로그램이다. 독립적으로 실행될 수 있으며, 데몬(백그라운드에서 자동 수행되는 작업을 수행하는 프로그램)이 이에 해당한다.. 2020. 7. 2.
spring boot(스프링 부트) - 프로젝트 구조 및 사용 방법 공식페이지의 내용을 정리하였습니다. 3.2. Structuring Your Code - spring boot의 일반적인 구조 이 구조의 루트 패키지는 com.example.myapplication이다. 루트 패키지 하위에 Application자바파일과 customer, order같은 패키지가 있다. Application.java파일은 루트 패키지에 존재한다고 할 수 있는데, 왜 이렇게 설정했는지 알아보자. Application파일은 구조가 매우 간단한데, @SpringBootApplication 어노테이션과 main 메소드가 있다. main메소드를 가지고 있어서 이 프로젝트의 진입점으로 이용가능하다. 일반적인 MVC 웹 프로젝트에서도 이러한 main메소드를 이용하는데, 그 이유는 tomcat을 내장하고 .. 2020. 6. 18.
javascript , jquery, css 무료 라이브러리 소개 FullCalendar 일정관리 달력을 편리하게 사용할 수 있다. 월간, 주간, 일간으로 표시할 수 있으며 일정을 추가하거나 삭제할 수 있다. swipper 스와이프 기능을 제공해주는 라이브러리다. (화면을 쓸어서 페이지 이동) j-query UI DatePicker, tab, tooltip등 기본적인 객체를 사용하기 간편하게 만들어 놓은 라이브러리다. 예쁘지는 않지만, 기술적인면에서는 편리 bootstrap 웹페이지 제작에 필요한 요소들을 사용하기 간편하게 만들어놓은 라이브러리. 간단한 사용방법만 익히면 웹페이지에 모든 구성요소를 부트스트랩으로 만들 수 있다. 특히 반응형으로 구현할 때 사용하기 편리하다. TOAST-UI 차트, 에디터, 그리드, 캘린더, 이미지 에디터를 무료로 지원한다. https:/.. 2020. 6. 4.
EL 사용법 / request, session 등에 있는 값을 jsp에서 간편하게 사용해보자. EL = Expression Language EL은 header, request, session, application과 같은 객체의 값을 편리하게 가져올 수 있도록 JSP에서 제공하는 기능입니다. EL은 JSP페이지 내에서 어느 위치에서든 사용할 수 있습니다. 예) 로그인여부 판단 및 포워딩처리 sessionScope에 있는 값 중 userid를 가져와서 null여부를 검사합니다. 로그인이 되어있다면 null이 아니므로, 초기화면으로 가고, 로그인 되어있지 않은 경우 로그인페이지로 이동합니다. JSTL과 EL이 함께 사용된 예시입니다. 위처럼, JSTL코드 내부에서도 사용할 수 있고, HTML페이지 어디에서든 필요한 곳에 사용할 수 있습니다. EL을 사용할 때는 ${[변수명 또는 수식]}과 같은 형태로.. 2020. 2. 26.
alert문구를 하나의 파일로 만들어서 관리하자. springframework.org/tags 프로젝트 하나를 완성하고나서, gitHub에서 프로젝트 하나를 다운받아 보던 중, 보지 못했던 기술이 있어서 찾아보았습니다. 폼을 서브밋 할 때 사용하는 자바스크립트 함수입니다. chkInputValue라는 메소드를 만들어서, 간단하게 공백검사를 하고 있네요. 그런데, ""는 생소하게 느껴졌습니다. jstl과 비슷한 느낌이라서 검색해보았습니다. 간단한 설정만 해주면 alert문구를 하나의 파일에서 통합하여 관리할 수 있었습니다. 어떻게 가능할 걸까요? 0. 세가지 필수 빈 알고가기 messageSource 메세지들을 입력해놓을 파일에 대한 설정 (인코딩 방식, 파일경로 등등) messageSourceAccessor 다양한 getMessage 메소드를 제공하여 MessageSource의 메시지에 쉽게 액세.. 2020. 2. 26.
Oracle에서 MariaDB로 마이그레이션하기 개인서버를 운영하기위해 오라클로 개발된 소스를 무료인 데이터베이스인 MariaDB로 변경했습니다. 그 과정에서 쿼리를 변경해 줄 필요가 있었는데요, MariaDB에 테이블을 마이그레이션 하는 방법에 대해 말씀드리겠습니다. 참고로 not null, pk 지정은 따로 해주셔야합니다. 1. sqlines http://www.sqlines.com/oracle-to-mysql (좌) / http://www.sqlines.com/online (우) 간편하게 소스를 변환하기 위해 sqlLines를 이용해보겠습니다. sqlLines는 데스크탑 버전과 온라인 버전이 있는데, 간편하게 온라인 버전을 사용하겠습니다. 이미지 캡션의 오른쪽 링크를 클릭하면 바로 들어갈 수 있습니다. 왼쪽이 변환전 오른쪽이 변환후 언어입니다. .. 2020. 2. 9.
반응형