전체 글 (177) 썸네일형 리스트형 [ 프로젝트 ] JWT 라이브러리 검증 메서드 이름 JJWT의 검증 메서드에 대한 의문 Java Spring에 적용한 JWT에 대해서 친구와 이야기하게 되었다. 거기서 토큰 검정 로직에 대해서 이야기 하면서 코드를 보는데 JJWT가 제공하는 토큰 확인하는 메서드 이름이 어울리지 않다는 생각이 들었다. parseClaimJws 메서드는 token을 Claim으로 파싱하는 메서드로 보인다. 하지만 실제로는 token의 검증과 파싱된 Claim을 반환 두 가지 역할을 가진다. public static boolean validateToken(String token) { try { Jwts.parserBuilder().setSigningKey(SIGNING_KEY).build().parseClaimsJws(token); return true; } catch (io.. [ 프로젝트 ] Java Spring에 JWT 적용 JWT Token 파일 구성 1. SecurityConfig.java Java Spring Security에 대한 설정과 JWT 필터 등록을 한다. @EnableWebSecurity 어노테이션을 추가해줘야 하며, 백엔드 상황에 따라 접근 정책을 작성해주면 된다. @Configuration @EnableWebSecurity(debug = true) public class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .cors() .and() .csrf() .disable() .exceptionHandling() .and() .sessionManagement() .s.. [ Docker ] Docker hub를 사용해 Jar 파일 EC2에서 실행해보기 이유 친구와 작은 사이드 프로젝트를 하면서 서버에 자바를 띄우는 방식에 대해 이야기를 했다. 이번에는 Docker hub에 Jar 이미지를 올려 EC2에서 실행하는 방식으로 해보는 것이 어떠하냐는 친구의 제안이 있었다. image 파일을 서버에서 받아서 실행만 하면 되기에 EC2에서 처리해야 할 일이 적었고 Docker를 공부할 수 있는 기회가 되는 것 같아 진행해 보기로 했다. Java Project를 Docker를 사용해 EC2에 올리는 방법 1. Jar 파일을 build를 통해 생성 ./gradlew build 2. Docker 파일 생성 # Dockerfile FROM openjdk:17-jdk-alpine ARG JAR_FILE= ${JAR 폴더 경로}/*.jar COPY ${JAR_FILE} .. [ Java ] Boxed Type 비교 Boxed Type 비교는 무엇으로?사이드 프로젝트할 때 Boxed Type(Integer, Long) 비교에 대해 선배 개발자 분에게 질문을 했다. 현재 작업에서 == 과 equals 비교 모두 내가 원하는 결과값(True, False)을 주고 있는 상황이었지만 Boxed Type은 Object였기에 equals을 사용해야할 것 같았기 때문이다.== 비교가 True가 나왔던 이유Boxed Type의 경우 Object이기에 == 비교는 주소값의 동일 유무를 따진다. 하지만 Integer 내부에서는 -128 ~ 127의 값은 Cache를 해뒀다가 해당 값이 들어올 경우 저장해둔 Integer 객체를 반환해준다. 그러기에 -128 ~ 127 사이의 값을 사용할 경우 같의 값의 경우 같은 객체를 가져 ==.. [ AWS ] EC2에 Swap Memory 적용 Swap 적용 이유 EC2 프리티어를 사용하여 만든 AWS Linux2 운영체제 t2.micro 인스턴스는 RAM을 1G까지만 제공을 한다. 프로젝트가 무겁거나 다수의 프로젝트를 돌릴 경우 메모리의 부족으로 정상적인 운영이 불가능하다. 우리가 했던 사이드 프로젝트(인생퍼즐)의 경우도 빌드가 안되는 문제가 발생했다. Swap 할당 크기 Swap의 크기는 일반적으로 RAM의 2배를 할당한다. 최대 절전 모드 상황에서는 RAM의 1배 크기를 할당하는 것을 권장하고 있다. 이 이상의 크기를 할당할 경우 속도가 현저히 떨어지는 문제가 생긴다. SwapFaq - Community Help Wiki Introduction This FAQ is aimed at Linux novices. People always won.. [ AWS ] Jenkins과 Elastic beanstalk을 통한 애플리케이션 배포 1. EC2 인스턴스 생성 - Amazon Linux 프리티어 환경 - SSD 30GB [ 프리티어 제한 ] - 보안 그룹으로 제한 [ SSH 접근은 내 IP만 가능하게 적용 ] 2. EC2 SSH 접속 Key-Pair(*.pem) 파일 권한 변경 chmod 400 {파일 이름}.pem pem 파일을 사용해 EC2에 접속 ssh -i "{파일 이름}.pem" {IAM유저}@{접속IP OR 접속URL} 3. Java 및 Jenkins 설치 sudo yum upgrade # jenkins 저장소를 yum에 다운로드 sudo wget -O /etc/yum.repos.d/jenkins.repo \ https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --imp.. 2022년을 돌아보며... 퇴사 후 대학원 준비... 물거품... 입사했던 이유... 실제 현업... 이 회사를 선택했던 이유 중 가장 큰 것은 NLP 솔루션을 제공하기 때문이었다. 직접 연관된 작업들을 하지 않더라도 기술들을 엿볼 수 있다고 생각했다. 면접 때도 이와 관련된 이야기를 했었다. 1년 7개월 정도의 시간 동안 하루에 3~4시간 자면서 작업한 경우가 많았으며 주말이 없는 경우도 많았다. 하지만 문서작업, 크롤링, 웹사이트 제작 작업, 기존에 만들어진 자바 프로그램의 유지보수 작업만 계속 하게 되었다. 퇴사하게된 이유 회사에서 일 하고 있는 어느 날 갑자기 가슴이 너무 답답했다. 잠도 많이 못자고 주말이 없는 경우가 허다 했던 1년 6개월 간 목표로 했던 분야에 대해서 1도 보지 못했다는 마음이 정점에 달했던 것 같다... [ Java Spring ] List 정렬하기 Comparable 인터페이스Comparable은 compareTo 메서드 하나만 가지고 있는 인터페이스이다. 기본적으로 들어온 파라미터보다 작은 경우 음수, 같은 경우 0, 큰 경우 양수의 값을 리턴한다. 필요에 따라 인터페이스를 상속 후 재정의해서 사용할 수 있다. public interface Comparable { public int compareTo(T o);}실제 예시Story 클래스가 Comparable 인터페이스를 상속하고 compareTo를 멤버변수 view의 크기에 따라 정렬하도록 재정의 했다. Class Story implements Comparable { String content; int view; @Override public int co.. 이전 1 ··· 16 17 18 19 20 21 22 23 다음