yooputer's devlog

고정 헤더 영역

글 제목

메뉴 레이어

yooputer's devlog

메뉴 리스트

  • 홈
  • 분류 전체보기 (166)
    • Computer Science (10)
      • 알고리즘 (2)
      • 데이터베이스 (8)
    • Programming Language (3)
      • Java (1)
      • Python (1)
      • JavaScript (1)
    • Framework (9)
      • Spring | SpringBoot (6)
      • SwiftUI (0)
      • DBMS (2)
    • Project (37)
      • WithParents (18)
      • Meta ESG (7)
      • MugLog (1)
      • 영풍문고 리뉴얼 (3)
      • 정산타임 (1)
      • 포트폴리오(NextJS + Notion API) (6)
      • etc. (1)
    • Coding Test (43)
      • 개념 (0)
      • 문제풀이 (43)
    • 컴공 수업 (0)
      • 오픈소스 소프트웨어 (0)
      • 정보검색 (0)
      • 컴파일러 (0)
    • Development Study (57)
      • 개발 관련 도서 (7)
      • 이펙티브 자바 (15)
      • SQLP (2)
      • 잡기술 (14)
      • 도커 (4)
      • 대용량 트래픽 처리 (6)
      • AI 개발 활용기 (4)
      • HTML&CSS (2)
      • 프론트엔드 (2)
    • 취업준비 (1)
      • 면접후기 (0)
      • 면접준비 (0)
    • 주절주절 (3)

검색 레이어

yooputer's devlog

검색 영역

컨텐츠 검색

Project/Meta ESG

  • 최초로그인시 새로고침되는 버그 픽스 | 스프링부트, SpringSecurity6, 지연된 CSRF 토큰 옵트아웃

    2024.08.28 by yooputer

  • 팀장님이 서버 끄신거 아니었어요...?

    2024.08.28 by yooputer

  • 예외처리 프로세스 | ControllerAdvice, AOP

    2024.03.05 by yooputer

  • Aspose Words 라이센스 등록

    2024.03.04 by yooputer

  • [Meta ESG] SmartEditor2 에디터 내 이미지 추가 구현 | SpringBoot, Azure blob storage

    2024.01.18 by yooputer

  • [Meta ESG] 현재 작성한 글자수 보여주기 기능 구현

    2024.01.16 by yooputer

  • [Meta ESG] 자동저장 구현

    2024.01.16 by yooputer

최초로그인시 새로고침되는 버그 픽스 | 스프링부트, SpringSecurity6, 지연된 CSRF 토큰 옵트아웃

문제상황로컬에서는 문제가 없는데, 개발서버나 운영서버에서는 로그인을 2번해야 로그인이 된다최초로 로그인을 하면 새로고침이 되고, 그 후에 로그인을 하면 로그인이 된다. 분석 XSRF-TOKEN 쿠키가 존재하면 로그인이 된다. XSRF-TOKEN이 없는 상태로 로그인을 하면 새로고침된 후 XSRF-TOKEN이 생긴다.  로그아웃을 하면 XSRF-TOKEN이 사라진다.  로컬에서는 항상 XSRF-TOKEN이 존재한다. 문제 해결 과정1. '왜 최초 로그인 화면에서 CSRF 토큰이 발급되지 않았을까?'2. 공식 문서에 따르면 CSRF 토큰을 lazy하게 발급하는게 디폴트라고 한다. (https://docs.spring.io/spring-security/reference/servlet/exploits/csrf...

Project/Meta ESG 2024. 8. 28. 20:52

팀장님이 서버 끄신거 아니었어요...?

프로젝트 개발을 마치고 클라이언트에게 인수인계를 해야하는 상황 근데 평소에 잘 돌아가던 개발서버가 접속이 안된다. 아 이제 개발서버 안쓰니까 팀장님이 끄셨나보다~! 했다.  근데 팀장님께 개발서버에 관해 여쭤봤는데 모르는 일이시라는 답변... 허걱... 부랴부랴 서버 접속해서 어플리케이션을 실행시켜봤는데 아래처럼 Killed라는 유언을 남기고 죽어버리는 것을 발견했다 부랴부랴 구글링하여 아래 포스팅 발견https://otugi.tistory.com/106 [리눅스] 프로세스가 killed 되었을 때 원인 알아내기리눅스 환경에서 프로그램을 돌리다보면 에러 메시지가 뜨지 않고 killed라는 글자만 쓰여있는 경우가 있다. 이 때는 다음과 같이 커맨드에 입력해주면 process가 강제종료된 원인을 알 수 있다..

Project/Meta ESG 2024. 8. 28. 20:28

예외처리 프로세스 | ControllerAdvice, AOP

기존에 있던 레거시 프로젝트는 try-catch문으로 떡칠되어 있었다. try-catch와 비즈니스 로직을 섞어놓으면 가독성이 나빠진다. 그래서 신규 구축 프로젝트를 맡았을때 예외처리 프로세스와 비즈니스 로직을 분리해야겠다고 생각했고, 새로운 예외처리 프로세스를 짜기로 했다. 예외처리 프로세스 요구사항 새로운 예외처리 프로세스에 대한 요구사항은 다음과 같다. 1. try-catch문은 Controller에서만 사용한다. (단, IOException과 같이 정적 예외는 예외가 발생한 곳에서 처리하거나 throws한다) 2. 예외가 발생했을 때 Controller인 경우 에러 페이지를 반환하고, RestController인 경우 에러 객체를 반환한다. 3. 예외가 발생하면 자동으로 exception_log ..

Project/Meta ESG 2024. 3. 5. 11:46

Aspose Words 라이센스 등록

보고서 출력(html을 word로 변환)할 때 Aspose Words 솔루션을 사용하였다. 무료 라이센스를 사용하며 개발했지만 무료 라이센스는 출력 제한, 워터마크, 배포 불가 등의 제한사항이 있기때문에 운영 서버에서는 라이센스를 구매하여 사용해야 한다. 이번 포스팅에서는 구매한 라이센스를 등록하는 과정을 기록해보려 한다. 라이센스 xml 파일 이동 라이센스를 구매하면 Aspose.Words.lic xml 파일을 준다. 해당 파일을 resoures 디렉토리에 위치시킨다. application.yml이 있는 곳이다. License bean 등록 AsposeWordConfig 클래스 생성 후 license를 빈으로 등록시켰다. @Configuration public class AsposeWordConfig ..

Project/Meta ESG 2024. 3. 4. 12:06

[Meta ESG] SmartEditor2 에디터 내 이미지 추가 구현 | SpringBoot, Azure blob storage

Meta ESG 프로젝트에서 에디터 내 이미지 삽입 요건이 있었다.에디터는 SmartEditor2를 사용하였고, SmartEditor2에 구현되어있던 이미지 모듈에 이미지를 클라우드에 업로드하고 이미지 경로를 반환하는 api를 사용해 구현하였다.스마트 에디터2 설치공식 문서를 참고해 스마트 에디터2를 설치하였다.https://naver.github.io/smarteditor2/user_guide/2_install/setting.html 2.0 버전 설치 · GitBookNo results matching ""naver.github.io사진 플러그인 추가아래 문서를 참고해 사진 플러그인을 추가했다.https://naver.github.io/smarteditor2/user_guide/4_photoupload..

Project/Meta ESG 2024. 1. 18. 08:51

[Meta ESG] 현재 작성한 글자수 보여주기 기능 구현

Meta ESG 프로젝트 요건 중 특정 textarea에서 현재 작성한 글자수를 보여주는 기능이 있었다. 나는 onkeyup 이벤트 핸들러를 사용해 구현하였다. HTML 0 / 500 등록 JS $('.check-input-length').keyup(function (e) { let content = $(this).find('textarea').val(); $(this).find('.typing-num').text(content.length); });

Project/Meta ESG 2024. 1. 16. 08:30

[Meta ESG] 자동저장 구현

개요 Meta ESG 프로젝트 요건 중 자동저장 기능이 있었다. 백엔드 코드는 수정하지 않고 프론트에서 타이머를 사용해 백엔드로 저장을 요청하여 구현했다. HTML 타이머를 보여줄 div와 타이머 on/off를 저장할 input이 필요하다 input에 onclick 메서드를 달았다. 자동저장 5:00 JS let min = 5, sec = 0; let timer; // init $(function(){ if($('#autoSaveToggle').is(':checked')){ startTimer(); } }); // 자동저장 타이머 시작 function startTimer() { timer = setInterval(countTimer, 1000); } // 자동저장 타이머 종료 function stopTi..

Project/Meta ESG 2024. 1. 16. 08:18

추가 정보

인기글

최신글

페이징

이전
1
다음
TISTORY
yooputer's devlog © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바