일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 깃
- jpa
- Docker
- maven
- build
- Spring Security
- 에러
- spring security 로그인
- 스프링 시큐리티 로그인
- Security 로그인
- CI
- react captcha
- REACT
- 리액트 캡차
- 스프링
- react 자동입력방지
- 리액트 심플캡차
- react 상태
- react simple captcha
- git
- Spring Boot
- 젠킨스
- react 캡차
- ChatGPT
- SpringBoot
- myBatis
- react 심플캡차
- spring error
- 스프링 시큐리티
- error
- Today
- Total
목록분류 전체보기 (63)
I can do it(Feat. DEV)

1. 글을 쓰게 된 계기 프로젝트를 진행하면서 백엔드 서버 구축 업무를 맡았고, 당연하게 아키텍처에 대한 고민이 생겼음. 어떤 식으로 아키텍쳐 구조를 만들어야 개발하는 입장에서도 접근하기 쉽고 추후 유지보수에서 프로세스를 파악하기 쉬울까... 하는 생각과 행동에 대한 정리를 해보겠음. # 잠깐! 계층 구조와 도메인 구조의 장단점 알고가기 1. 계층 구조 * 장점 - 패키지 구조만 보고 전체적인 구조를 파악하기 쉽기 때문에 작은 프로젝트나 도메인 개수가 적을 때 사용 - 예를 들어 서비스 로직에 대한 기능 수정이 있을 땐 서비스 패키지만 확인하면 됨. > 해당되는 패키지만 확인 * 단점 - 한 패키지 안의 클래스 파일들이 많이 모이게 되어 복잡해지고 관리하기 힘들어짐. - 추후 기능 수정으로 인한 모듈 단..

📝 글을 쓰게 된 계기(문제 발견) 프로젝트 진행 중 저번에 만들었던 엑셀 다운로드 기능으로 다운로드 테스트를 했음. 그런데!! 건수가 2만 건 정도 되는데 10초 넘게 걸림.😅 이건 문제가 있다고 판단하여 속도 개선을 위해 어느 부분에서 시간이 오래 걸리는지 디버깅 모드에서 찾아봄. 확인 결과 📢 엑셀을 만들고 데이터를 세팅하는데 시간이 오래 걸린 게 아니라 엑셀 만들기 전에 데이터를 변환하는 과정이 있었는데 그 과정에서 문제가 있었음. 🔧 해결과정 데이터 변환 로직(일부) //기존 코드 Field[] fields = target.getClass().getDeclaredFields(); for (Field field : fields ) { field.setAccessible(true); //접근 권한 ..

📝글을 쓰게 된 계기 신규 프로젝트 진행 중 VO를 만드는데 필드를 하나하나 선언하는 게 너무 비효율적이라 생각되어서 ChatGPT를 사용해 파이썬 스크립트를 작성하여 반복 업무를 줄이고자 함. 1. 환경 세팅 파이썬 스크립트이기 때문에 파이썬은 당연히 설치되어 있어야 함. 그리고 필자는 vsCode를 사용하였음. 혹시 안되어있다면.. https://www.google.com/search?q=vscode+%ED%8C%8C%EC%9D%B4%EC%8D%AC+%EC%84%A4%EC%B9%98&oq=&gs_lcrp=EgZjaHJvbWUqCQgBECMYJxjqAjIJCAAQIxgnGOoCMgkIARAjGCcY6gIyCQgCECMYJxjqAjIJCAMQIxgnGOoCMgkIBBAjGCcY6gIyCQgFECMYJxj..

📝글을 쓰게 된 계기 진행 중인 프로젝트 간단한 스펙 설명 - Spring Boot - TypeScript - Mybatis 엑셀 기능 개발 중 Axios 응답 객체에서 Content-Disposition을 찾을 수 없는 문제가 발생함. 분명히 아래 코드와 같이 서버단에서 응답 헤더에 파일명을 설정을 했는데 //파일명 인코딩 String encodedFilename = URLEncoder.encode(tblName+"목록","UTF-8"); //헤더에 파일명 세팅 response.setHeader("content-disposition", "attachment; filename=\"" + encodedFilename + ".xlsx\""); //콘텐츠 타입 설정 response.setContentType(..

📝글을 쓰게 된 계기 이번에 새로 개발 중인 웹 사이트는 개발 시간 단축을 위해 기존 시스템처럼 Mybatis를 사용하여 데이터를 조회함. 그런데 JPA로는 Pageable을 사용해 페이징 처리를 해보았지만, Mybatis는 해보지 않았음. 혹시 될 수도 있지 않을까 궁금해서 Page 타입에 Mybatis로 가져온 데이터를 넣어보았지만 당연히 에러가 남. 😅 바로 갓글에 검색 ~ 🤭 참조 사이트에 친절하게 설명되어 있지만 한번 더 숙지하기 위해 이 글을 작성함. 참고로 view 단 페이징은 이번 포스팅에서는 제외하고 back 단 구현만 포스팅함. 틀린 점 있다면 dm 말고 댓글로 말씀 부탁드림.🙏 챕터 1. pom.xml에 의존성 추가 Spring Data에서 제공하는 Pageable을 사용하려면 라이브..

1. TMI(글 작성 계기) 새로운 프로젝트를 개발 중에 로그인 기능을 추가하던 중 유저 테이블과 관련된 유저 권한 테이블에서 PK가 2개인 것을 발견..? JPA를 사용하고 있었지만 PK가 두 개인 건 설정해 본 적이 없는 필자는 그냥 냅다 @id를 각 컬럼에 붙였음. 역시 에러가 뜸... 찾아보니 ID 값이 두 개라서 매핑 오류가 떴다는 것(당연하지만) 그래서 방법을 찾던 중 알게 된 방법 2가지!!! 1. @Embeddable 및 @EmbeddedId 설정(객체지향에 더 가까운 방법) 2. @IdClass 설정(RDB에 가까운 방법) 인데 결국 PK 클래스를 만들어서 Serializable 을 implements 하고 각각 설정을 해주는 방식임. 그럼 설정하는 방식을 알아보겠음🤗 참고로 필자는 1번..

1. 이슈 발생 상황 spring security를 사용하여 로그인 기능을 구현하려고 security config 클래스 파일을 생성하여 기본 로그인 기능까지는 만들었음. 그런데 프로젝트 디렉토리 구조를 변경해야 할 듯하여 전체적으로 수정을 진행함. 이해를 돕기위해 이런 식으로 구조가 되어 있었다고 가정하겠음. 그리고 이런식으로 구조를 변경했는데(실제 프로젝트는 아님)... security로 만들었던 로그인 기능이 작동을 안 함(로그인이 안 되는 상황 발생) 뭔가 디렉토리 구조를 변경해서 문제가 생긴 지는 알겠는데 에러도 안 뜨고 상황도 애매하니 갓글에 검색하기에도 어려웠음.🤬 2. 이슈가 발생한 과정 및 이유 돌고 돌다 @Configuration이 작동을 안 하는 듯하여 찾아보니 @ComponentSc..

필자는 로컬 환경에서 가상계좌 테스트하는 방법을 몰랐는데 https://docs.tosspayments.com/common/webhook 웹훅(Webhook) 연동하기 | 토스페이먼츠 개발자센터 웹훅은 데이터가 변경되었을 때 상점 서버에서 실시간으로 알림을 받을 수 있는 기능입니다. 웹훅을 연동해서 결제 상태 변경, 지급대행 실행, 브랜드페이 고객 결제수단 업데이트와 같은 변경 docs.tosspayments.com 토스페이먼츠 쪽에 찾아보니 친절하게 알려주고 있었음.😅 매번 테스트 가상계좌를 발급받고 토스페이먼츠 개발자센터 > 테스트 결제내역에서 입금처리 or 취소 버튼 클릭했을 때 로컬환경이다 보니 웹훅을 받지 못해서 결제 테스트에 제한적이었음. 하지만 로컬이라도 웹훅을 받을 수 있다는 방법이 있어서..