분류 전체보기 363

lucy-xss-servlet-filter 적용하며 발생한 오늘의 오류, & 그리고 &amp

lucy-xss-servlet-filter를 적용하며 발생했던 오류 기록 lucy-xss-servlet-filter를 알기 전 먼저 XSS 크로스 사이트 스크립팅 공격의 개념에 대해서 알아보겠습니다. XSS (Cross Stie Script), 크로스 사이트 스크립팅 공격 XSS는 웹 어플리케이션의 게시글 같은 곳에서 공격자가 악의적으로 스크립트를 삽입해 공격하는 기법입니다. 이 공격은 사용자(클라이언트)를 대상으로 이뤄지며, 웹의 게시판 같은 곳에서 데이터를 서버로 저장할 때 데이터에 대한 검증이 이뤄지지 않거나 xss에 대한 방어 대비가 없다면 스크립트가 포함된 데이터가 저장되어 사용자가 해당 글을 클릭했을 때 스크립트가 실행되어 유저의 개인정보 및 데이터를 탈취하는 상황이 발생합니다. 그리고 이러한..

Programming/Error 2021.08.05

Java Primitive Type (원시 타입), Wrapper Class (래퍼 클래스) 차이점

프로젝트를 하면서 대부분의 경우에 Long을 쓰면서 가끔 어떤 경우에서는 IntelliJ가 자동으로 Long을 long으로 바꿔주는 경우가 있었습니다. 왜 그런지 이유를 몰랐고, 궁금하지도 않았다는 것을 반성하며 Java의 원시 타입 Primitive Type과 래퍼 클래스 Wrapper Class의 차이에 대해서 알아보았습니다. 먼저 Primitive Type, Wrapper Class에 어떤 것들이 해당하는지 보겠습니다. Primitive Type Wrapper Class byte Byte short Short int Integer long Long float Float double Double boolean Boolean char Character 원시 타입으로는 byte, short, int, l..

Programming/Java 2021.08.04

웹사이트 네이버 웹 페이지 최적화 (robots.txt, 선호 URL, Open Graph, 모바일 사용성)

개발한 웹사이트를 배포하고 서비스 하는 부분에 있어서 검색엔진 최적화는 중요한 부분입니다. 최적화 과정에서 적용한 네이버 서치어드바이저 Search Advisor 웹 페이지 최적화를 적용한 방법을 보겠습니다. 최초 사이트 등록에서 사이트의 소유 확인을 위한 HTML 태그를 넣고 소유 인증을 하고 나서 해당 사이트 주소를 입력하면 웹 페이지 최적화 테스트를 할 수 있습니다. 위 부분에서 선호 URL, robots.txt, 페이지 제목, 페이지 설명, Open Graph 제목, Open Graph 설명, 모바일 사용성 부분을 활성화 시키는 방법입니다. robots.txt 를 제외한 모든 것은 html 의 태그 안에서 적용할 수 있습니다. thymeleaf 또는 tiles 탬플릿을 사용하신다면 해당 탬플릿의 ..

Programming/Web 2021.08.03

nohup 명령어를 사용해도 프로세스가 종료되는 경우 해결 방법

서버에 서비스를 배포 중 터미널이 종료되어도 프로세스가 지속되도록 하기 위해 찾은 방법이 nohup 명령어입니다. 처음 nohup 명령어를 사용하여 프로젝트를 실행했을 때는 터미널 종료 후에도 서비스가 계속 동작하는 것을 확인하였으나, 마무리 작업에서 갑자기 nohup 명령어를 사용해도 프로젝트가 종료되는 경우가 발생하여 찾은 해결 방법입니다. 우선 nohup 명령어는 리눅스(Linux)에서 프로세스를 실행한 터미널의 세션 연결이 끊어지더라도 계속 동작할 수 있게 해주는 명령어입니다. 원리는 터미널에서 로그아웃이 발생하면 리눅스는 해당 터미널에서 실행한 프로세스들에게 hup signal을 전달하여 종료시키는데, nohup 명령어가 이 hup signal을 무시하는 명령어기 때문에 터미널 연결이 끊어지거나..

Programming/Linux 2021.08.01

MySQL 한글 물음표, 한글 깨짐 해결 방법 (mysql 5.6)

서버에 프로젝트를 배포하여 테스트하던 중 Database Schema 설정을 utf8으로 했는데도 insert 되는 한글이 '???'로 깨져서 들어가는 현상이 발행하여 해결 방법을 찾아보았습니다. * 사용된 mysql 버전은 5.6 버전입니다. 이러한 현상이 발생하는 이유는 mysql 의 character set을 명시적으로 설정하지 않으면 MySQL 5.7 이하 버전은 latin1, MySQL 8은 utifmb4가 default 값으로 설정되기 때문이라고 합니다. 해결 방법은 아래 과정에 따라 charater set을 명시해주면 됩니다. mysql에 접속하여 status 명령어를 입력하면 Server charcterset, Db charcterset이 latin1으로 설정된 것을 확인할 수 있습니다. ..

Programming/MySQL 2021.07.31

springboot 개발 환경에 따른 properties 사용 방법 (local, dev, prod)

스프링부트에서 개발 환경에 따라 properties를 사용하는 방법입니다. 우선 properties란 무엇인지 알아보겠습니다. .properties는 설정 파일입니다. 자바 응용프로그램 내에서 사용되는 설정과 관련된 변수들을 파일에다가 쓰고, 읽어오는 방식에 사용되는 파일입니다. 이 설정 파일은 외부에서 파일을 넣을 수도 있고, 프로젝트 내부적으로도 넣어서 사용할 수 있습니다. 위에서 말한 설정과 관련된 변수들은 문자열로 저장됩니다. 각 줄은 일반적으로 하나의 프로퍼티를 저장하며, 한 문자열은 key, value 쌍으로 저장됩니다. 줄의 맨 앞에 # 또는 ! 를 사용하여 주석처리를 할 수 있습니다. 위에 보이는 파일은 가장 기본이 되는 application.properties 파일로 스프링부트가 어플리케..

No auto configuration classes found in META-INF/spring.factories 오류 해결

IntelliJ Spring Boot Project 배포를 위한 jar 파일 생성 (Maven) 마무리 중인 Spring Boot 프로젝트 배포를 위해 작업된 프로젝트를 jar 파일로 만드는 법을 기록합니다. (큰 틀에서의 이론을 먼저 살펴보고 생성 방법에 대해서 알아보겠습니다.) 먼저 Java 기반의 Ap wildeveloperetrain.tistory.com * 해당 포스팅의 방법으로 생성한 .jar 을 실행하는 과정에서 발생한 오류와 그 해결 방법을 찾아 다시 포스팅합니다. 프로젝트를 배포하기 위해 위 방법으로 .jar 파일을 생성하고 실행하였으나 에러가 발생하였습니다. ERROR org.springframework.boot.SpringApplication - Application run faile..

MySQL 비밀번호 변경 방법, How to change MySQL root password

개발한 웹사이트를 배포하기 위해서 서버 설정 과정 중 MySQL 비밀번호 변경 방법을 포스팅합니다. (사용된 운영체제와 MySQL 버전은 다음과 같습니다.) CentOS 7.2 with MySQL 5.7 (64-bit) * 비밀번호 변경 방법 및 명령문은 버전에 따라 다를 수 있습니다. mysql -u root -p 명령어로 실행합니다. MySQL을 가장 처음으로 실행하게 되면 비밀번호가 설정되어 있지 않기 때문에 Enter Password: 에서 엔터만 입력하는 것으로 접속을 할 수 있습니다. use mysql; 비밀번호 변경을 위해서는 mysql 데이터베이스를 사용해야 합니다. (Database changed 를 통해 요청이 적용된 것을 확인할 수 있습니다.) 다음으로 select 문을 통해 설정된 ..

Programming/MySQL 2021.07.24

Mac 맥북 자주 사용되는 단축키 (이모티콘, 화면 캡쳐, 스크린샷, 한영전환)

맥북을 사용한 지 반년이 지나가는데 아직도 이모티콘 단축키를 헷갈려하는 것이 웃겨 맥북에서 자주 사용되는 유용한 단축키 몇 가지를 간단하게 정리합니다. 1. 맥북 이모티콘 단축키 맥북에서 이모티콘을 사용하기 위한 단축키는 Command + Control + Space입니다. 이제는 까먹지 않기를 바라며.. 2. 맥북 화면 캡쳐, 스크린샷 단축키 맥북에서 화면 캡쳐, 화면 녹화, 스크린샷을 찍기 위한 단축키는 Command + Shift + 3 or 4 or 5 입니다. 3, 4, 5 세 가지 기능이 있는데요. Command + Shift + 3 => 전체 화면을 캡쳐하는 단축키 Command + Shift + 4 => 직접 캡쳐할 영역을 지정할 수 있습니다. Command + Shift + 5 => 실행..

Programming/MacOS 2021.07.19

MacOS 숨겨진 폴더, 숨겨진 파일 확인하는 단축키

맥북이나 아이맥 같은 mac 운영체제는 기본적으로 특정 시스템 및 백업 파일을 Finder에 표시하지 않습니다. 하지만 개발을 하다 보니 eclipse-workspage 내부의 .metadata 폴더와 같이 가끔 숨겨진 폴더나 파일을 봐야 하는 경우가 있었습니다. 이때 숨겨진 폴더 또는 숨김 파일을 확인하는 단축키는 ⌘ + ⇧ + . Command + Shift + . 입니다. 해당 단축키를 사용하여 토글 방식으로 숨겨진 폴더 및 숨겨진 파일을 확인할 수 있으니 한번 숙지해두면 좋을 것 같습니다.

Programming/MacOS 2021.07.18