Latest Posts · Page 4 of 6
DEVELOPERS: SAMESITE=NONE; SECURE 쿠키 설정을 위한 준비

SameSite=None은 크로스 사이트(다른 도메인)에서도 쿠키를 전송하기 위한 설정이다. 하지만 보안 강화를 위해 SameSite=None을 사용하려면 반드시 Secure 옵션(HTTPS 전용)이 함께 필요하다. 이 정책은 Chrome 80 이후 적용되었으며, 미설정 쿠키는 기본적으로 SameSite=Lax로 처리되어 외부 요청에서 제한된다.

Read
HTTPS접속에서 MIXED MESSAGE가 더 이상 없다.

HTTPS 페이지에서 HTTP 리소스를 요청하면 보안상 문제로 브라우저가 차단하는 “Mixed Content” 오류가 발생한다. 이는 보통 리다이렉트, 외부 리소스(이미지/스크립트), 프록시 설정 문제 등으로 HTTP 요청이 섞이면서 발생한다. 해결하려면 모든 요청을 HTTPS로 통일하거나, 프록시/헤더 설정 및 CSP 등을 통해 안전하게 HTTPS로 변환해야 한다.

Read
SpringBoot에 Thymeleaf, JSP 같이 쓰기

Spring Boot에서는 Thymeleaf와 JSP를 함께 사용할 수 있지만, 각각의 View Resolver 설정을 명확히 분리해야 한다. 일반적으로 Thymeleaf는 templates 경로, JSP는 WEB-INF 경로로 구분하여 처리한다. 다만 구조가 복잡해지고 유지보수가 어려워질 수 있어, 실무에서는 하나의 템플릿 엔진으로 통일하는 것이 권장된다.

Read
JPA 기술 세미나 노트

JPA는 엔티티 객체와 DB 테이블을 매핑하여 객체지향적으로 데이터를 다룰 수 있게 해주는 ORM 기술이다. 하지만 내부적으로는 영속성 컨텍스트, 변경 감지(Dirty Checking) 등 동작 원리를 이해하지 않으면 예상과 다른 쿼리나 성능 문제가 발생할 수 있다. 따라서 단순 CRUD 수준을 넘어서 JPA의 동작 방식과 생명주기를 이해하는 것이 실무에서 매우 중요하다.

Read
Tomcat 8.5에서의 특수문자 파일명/경로 처리

Tomcat 8.5에서는 Hot Deploy/Reload 기능을 통해 서버 재시작 없이 변경된 클래스 반영이 가능하다. 하지만 신규 클래스 추가나 구조 변경은 반영되지 않아 결국 재기동이 필요한 한계가 있다. 또한 reload 기능은 메모리 누수나 안정성 문제 등으로 운영환경에서는 주의해서 사용해야 한다.

Read
JDK 버전 업그레이드를 하여야 하는 이유

JDK에서 제공하는 기본 HotSwap 기능은 디버깅 편의 수준으로 제한적이며, 클래스 구조 변경(필드/메소드 추가 등)은 지원하지 않는다. 따라서 실무에서 자유로운 클래스 리로딩을 하려면 JVM 한계를 보완하는 별도 도구나 에이전트 기반 방식이 필요하다.

Read
Gradle 배포 환경 별 설정파일 분리

배포환경 별로 설정파일을 분리하는 방법은 여러가지가 있는데 그냥 properties 파일 안에 개발인지 운영인지 구분하는 프로퍼티를 설정하고 deploy 할 때마다 그 프로퍼티만 dev에서 live로 바꿔서 올리는 방법이 있고 WAS 기동시 argument를 넘겨서 Spring의 context.xml에서 인식하게 하여 구분하게 하는 방법, 그리고 maven이나 gradle 로 빌드할 때 프로퍼티를 줘서 build를 배포환경 별로 달리 수행되게 하는 방법이 있는데 내가 보기엔 마지막 방법이 가장 나아보인다. 왜냐면 첫번째나 두번째 방법은 운영에 배포할 때 개발환경의 프로퍼티 파일이 war에 포함되서 결국 더미 파일을 가지고 있을 수 밖에 없는데 maven이나 gradle를 활용하는 방법은 아예 배포환경에 필요한 파일들만 포함시켜서 deploy 할 수 있기 때문이다.

Read
Spring MVC에서 페이스북 소셜로그인 구현

개인 프로젝트에서 페이스북 소셜로그인을 구현하려는데 해보니까 진짜 쉽지만 초반에는 하루 이틀정도 헤멨던 것 같다. Spring.io에서 예제들을 열심히 찾았지만 Spring boot 사용을 전제로 해서 내놓은 것이라서 예시에서는 자동적으로 되던 것이 당연히 내 프로젝트에서는 안됐고 적지않은 구글링을 했어야 했다.

Read
Node.js 웹 애플리케이션을 Heroku에 Deploy 하기

Node.js Express 앱 생성 후 루트에 Procfile(web: node ./bin/www)을 추가하고, 라이브러리는 반드시 npm install --save로 설치하여 package.json 의존성을 정확히 관리해야 Heroku Deploy 시 오류가 없다. Heroku 대시보드에서 앱 생성 후 CLI로 heroku git:remote로 원격 Repository를 설정하고, git push heroku master 한 번으로 프레임워크 자동 탐지 및 Deploy까지 완료된다. 설정이 극히 간단하여 프로토타입/테스트 용도로는 훌륭하나, 해외 서버 위치로 인한 응답 지연, Sleep 모드 자동 전환, DB 성능 문제 등으로 정식 서비스는 유료 플랜 전환이 필요하다.

Read
블로그에 새로운 글이 발행되었습니다.