전체 글 389

가볍게 읽어보는 Kotlin) 1.기본 문법 및 변수와 자료형

Intro 코틀린은 Intelli IDEA를 개발한 JetBrains 사에서 공개한 오픈 소스 프로그래밍 언어 입니다. JVM 위에서 돌아가며 자바와 유사 하지만 간결한 문법과 다양한 기능 추가로 굉장히 호평을 받고 있습니다. 처음 공개된 2011년 에는 그렇게 큰 관심을 받지 못했지만, 오라클이 Java API 저작권으로 좋지 않은 신호를 계속 보이자 Google에서는 2017년 안드로이드의 공식 언어로 Kotlin을 추가 하였습니다. 그 때 부터 비약적인 관심을 받기 시작한 코틀린은 간결한 문법, 예외처리를 강제하지 않음, Null 안정성 등 으로 비약적인 생산성과 코드량 감소로 입소문을 타기 시작하였고, 이제는 흔히 네카라쿠배로 불리는 대기업 IT회사들을 필두로 여러가지 신규 서비스들이 코틀린으로 ..

Programming/Kotlin 2022.04.07

일간에러) application.yml 파일을 못읽을때 spring.config.location

문제 최근 프로젝트의 Spring Boot 버전을 1.5 에서 2.5로 마이그레이션을 진행 한 후 로컬에서 수많은 테스트를 거쳤습니다. 최근에는 개발 서버에도 올려서 정상적인 작동을 확인 하였고 이제 운영 서버에 반영을 시도 할 때가 되었습니다. 스프링부트 버전을 업그레이드 한 7개의 패키징을 갈아 끼우고, docker-compose up -d 을 외칩니다. 도커 컨테이너가 하나 둘 씩 문제없이 뜨기 시작합니다. status를 보니 UP, UP, UP, UP, UP, 그 가운데 슬며시 껴있는 Restarting 하나. 어플리케이션이 딱 하나 구동되지 못하고 계속 재 시작 되고 있습니다. 로그를 확인 해 보니 Caused by: java.lang.IllegalArgumentException: Could n..

Spring FW) 제로데이 취약점 CVE-2022-22965

SpringShell CVE-2022-22965 JDK9+ 버전을 사용해 Spring MVC 혹은 Spring WebFlux 어플리케이션을 구동하고 있다면 데이터 바인딩을 통한 원격 코드 실행(Remote Code Execution) 취약점에 노출 될 수 있다는 소식이 2022년 3월 31일 일요일에 공개되었습니다. 스프링 프레임워크가 워낙에 광범위하게 사용되고 있으며, 해당 취약점의 심각도가 높다 보니 CVSS 스코어가 9.8점으로 꽤나 높게 나왔습니다. 지금은 보통 SpringShell 혹은 Spring4Shell 라고 불리고 있는 해당 취약점에 대해 알아보겠습니다. 영향을 받는 환경 JDK 9+ Apache Tomcat을 서블릿 컨테이너로 사용 전통적인 WAR 패키징 (스프링 부트의 jar 패키징은..

IT Computer/News 2022.04.05

Spring Session과 Cookie SameSite 정책

Intro SpringBoot 1.5 버전에서 2.5 버전으로 마이그레이션 작업이 대부분 완료 되었는데 SAML을 이용한 SSO 로그인 부분에서 굉장히 오래동안 해결하지 못하던 문제가 있었습니다. 분명 해당 부분의 코드는 전혀 변경이 없었는데 단지 스프링부트 버전이 달라졌다고 해서 예전 버전에서는 되고 지금은 안되는게 통 이해가 되지 않았습니다. 문제 일단 원인은 본 글의 제목처럼 Spring Session에서의 Cookie SameSite 정책 변경 때문이었습니다. 왜 이게 문제가 되었고 스프링부트 버전과 Cookie 정책이 어떤 연관관계가 있으며 어떻게 해결을 할 수 있는지에 대해 알아보겠습니다. 로그인 성공과 실패시 요청의 차이 SSO 로그인에 성공하던 요청 SSO 로그인에 실패하고 있는 요청 일단..

Docker) MariaDB 컨테이너 설치하기. IntelliJ IDEA 로 DB 접속하기

Intro 입사 전 국비학원에서 Oracle Database 교육을 몇주간 짧게 받은게 전부였는데 입사 후에도 맡은 프로젝트들에서 JPA를 사용하다 보니 쿼리를 직접 짤 일이 많지 않았습니다. 데이터베이스 공부를 따로 하려고 했는데 자바 심화과정, 스프링, JPA, 운영체제, 자료구조 및 알고리즘 등 평소 너무나도 공부하고싶었던 것들이 너무나도 많았다보니 자연스레 우선순위에서 밀려 아직까지도 손을 대지 못하고 있습니다. 업무중에 드문 드문 조금이라도 복잡한 쿼리를 짜내야 하는 일이 생길 때 마다 개념은 어렴풋 알고 있어도 정확한 사용법을 모르는 문법이나 함수 등을 매번 검색하다보니 병목이 생기는 구간이라는게 명백해졌습니다. 병목구간을 알면서도 외면하기엔 양심의 가책이 큽니다. 학습도 중요하지만 꾸준히 사..

Development/DevOps 2022.03.26