[DEV] 기록 165

Eclipse) The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

이클립스에서 개발하는 도중 아래와 같은 에러 메시지가 발생했습니다. The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 해결방법은 간단합니다. 1. 프로젝트 우클릭 -> properties 클릭 2. Project Facets -> Java -> Runtime 3. 자신이 사용하는 Apache Tomcat 버전 체크 -> Apply and Close 4. 해결!

[DEV] 기록 2020.09.16

크롬 브라우저 HSTS 제거하는 방법

개발망에서 https 프로토콜이 아닌 http 프로토콜로 테스트를 해야하는데 hsts(HTTP Strict Transport Security)가 적용되어 디폴트로 url 스키마가 https가 되는 문제가 발생했습니다. 저는 이 문제점을 해결하기 위해 chrome hsts 설정을 접근하여 해당 개발망 url에 대한 hsts 적용 해제를 했습니다. 방법은 아래와 같습니다. 1. chrome://net-internals/#hsts 에 접속해주세요. 2. Query HSTS/PKP domain 메뉴에서 도메인을 조회하여 HSTS가 적용되었는지 확인을 합니다. 3. Delete domain security policies 메뉴에서 도메인을 입력하여 HSTS 적용 해제를 진행합니다. 4. Query HSTS/PKP..

[DEV] 기록 2020.09.15

Eclipse ctrl + space 자동완성이 안 될 경우

보통 Eclipse에서 개발을 할 때 ctrl + space를 눌러 자동완성을 하는데 No default proposals라는 문구가 뜨면서 자동완성이 안되는 경우가 있습니다. 이런 경우에는 아래와 같이 해결을 하면 됩니다. 메뉴 상단에 Windows > Preferences > Java > Editor > Content Assist > Advanced 순으로 들어가 아래와 같이 default proposal kinds를 추가해주면 됩니다. [출처] stackoverflow.com/questions/908489/eclipse-java-code-completion-not-working

[DEV] 기록 2020.09.10

Tomcat에서 jsessionid가 URL에 붙는 것을 방지하는 설정

[개요] 웹 서비스를 개발하는 도중 redirect를 할 때 [리다이렉트한 URL;jsessionid=XXX]와 같이 url 뒤에 jsessionid가 붙는 경우가 있어 이를 방지하는 방법을 공유합니니다. [문제의 원인] 브라우저에서 쿠키를 사용할 수 없거나 쿠키가 없는 경우 URL이 인코딩될 때, jsessionid가 URL에 추가됩니다. 또한, 쿠키가 활성화된 경우에도 URL이 인코딩되는 경우 Java 애플리케이션은 첫 번째 요청에 대한 모든 URL에 jsessionid를 추가됩니다. 이는 첫 번째 요청을 보낼 때 서버가 브라우저에서 쿠키가 사용 가능한지 여부를 모르기 때문에 발생합니다. [문제 해결 방법] 해당 문제는 리다이렉트를 하는 과정에서 URL을 다시 작성 즉, URL rewriting을 하..

[DEV] 기록 2020.09.08

Lombok) 상속받는 부모 클래스 필드도 빌더 패턴을 적용하고 싶을 경우

개발을 진행하다가 Lombok @Builder 어노테이션을 사용하여 부모 클래스 필드 값을 세팅했는데도 불구하고 로그를 찍어보면 부모 클래스 필드가 전부 null 인 문제점이 발생했습니다. 간단하게 예시를 들자면 아래와 같습니다. Parent.class @Builder public class Parent { protected String a; protected String b; } Child.class @Builder public class Child extends Parent { private String c; private String d; private String e; } Controller.class @Slf4j @RestController public class Controller { @Api..

[DEV] 기록 2020.08.07

@Pattern 어노테이션을 통해 전화번호가 유효한 형태인지 검증

Input 값이 유효한 전화번호 형식인지 검증하기 위해 @Pattern 어노테이션을 사용했습니다. 정규문법을 이용하여 확인하는 것이고 작성방법은 아래와 같습니다. DTO @Data @Builder @NoArgsConstructor @AllArgsConstructor public class Temp { // 전화번호 @NotNull @Pattern(regexp = "^01(?:0|1|[6-9])[.-]?(\\d{3}|\\d{4})[.-]?(\\d{4})$", message = "10 ~ 11 자리의 숫자만 입력 가능합니다.") String telephoneNumber; } 여기서 핵심은 regexp = "^01(?:0|1|[6-9])[.-]?(\\d{3}|\\d{4})[.-]?(\\d{4})$" 이 부분입..

[DEV] 기록 2020.07.28

Jenkins ERROR: Labels must follow required specs

Jenkins build를 진행할 때 아래와 같은 에러메시지가 발생했습니다. ERROR: Labels must follow required specs - https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set: 상황마다 다르겠지만 저 같은 경우 CI yaml 파일 내 label 길이가 너무 길어서 발생하는 에러였습니다. 해당 에러가 발생할 경우 레이블 길이를 줄인다면 쉽게 해결이 될 것입니다!

[DEV] 기록 2020.07.20

Error: opening registry key 'Software\JavaSoft\Java Runtime Environment'

회사에서 타 솔루션을 쓰기 위해 다른 버전의 java를 설치한 결과 아래와 같은 에러가 발생했습니다. Error: opening registry key 'Software\JavaSoft\Java Runtime Environment' Error: could not find java.dll Error: Could not find Java SE Runtime Environment. 위와 같은 에러는 Java가 설치되어있더라도 경로를 찾지 못할 경우 발생하는 에러입니다. 저 같은 경우 자바 관련 실행 파일이 시스템 폴더에 존재하고 시스템 폴더가 PATH보다 앞에 위치해서 우선권을 가지다 보니 충돌이 나서 문제가 발생했었습니다. 따라서, 저는 C:\Windows\SysWOW64 폴더 내 java.exe, java..

[DEV] 기록 2020.07.20