SpringBoot/기타
필요해서 만든 크롬 확장 프로그램
필요해서 만든 크롬 확장 프로그램
2025.03.18크롬을 쓰고 여러 개의 화면을 쓰다 보니 동일한 중복탭이 많이 생기고 가끔 렉이 걸리는 경우가 발생했다. 동일한 중복탭이 생겼을 때 하나를 남기고 모두 닫는 확장 프로그램을 만들었다. 사람들에게 공유하기 위해서는 5$를 내야 하기에 나는 그렇게 하고 싶지는 않기 때문에 그냥 코드를 공유한다. 우선 js를 사용해야 하고, 로직 자체는 아래와 같다. 1. 탭에서 검색했을 때 기존 탭들과 url과 id 비교2. 같은 url이 존재할 경우 모달을 띄우고 닫을 지 말지 확인3. 닫기 할 경우 가장 최근의 탭을 제외하고 모두 닫기 코드 구현은 모달 때문에 2개의 js 파일이 필요하고 우선 현재 열린 탭들의 url을 확인하는 것은 아래와 같다.chrome.tabs.onUpdated.addListener((ta..
로컬 Minikube로 외부에 서비스 하기
로컬 Minikube로 외부에 서비스 하기
2025.03.18사이드 프로젝트를 간단히 진행하면서 쿠버네티스에 익숙해지기 위해 Minikube로 환경을 구성해 보기로 했다. 외부에서 서비스를 노출해야 했지만, Minikube만으로는 이를 해결할 수 없어서 방법을 공유하려고 한다.(minikube 설치는 생략한다.) 인프라 세팅 편리성을 위해서 무료 도메인이 필요한데, 나 같은 경우 무료 도메인 발급 여기에서 무료로 생성한다. 그후에 도메인을 내 IP와 연결해 주면 된다. 그 후에 공유기를 사용하고 있다면, 공유기에서 80이나 ssl을 사용한다면 443 포트를 열어줘야 한다. 나 같은 경우 netis 공유기를 사용하기에 http://192.168.1.1/ 로 접근해서 고급 설정 -> 방화벽에서 80 포트를 허용해 줬다. 다음은 minikube 셋팅이다. mini..
테스트 코드를 위해 실제 코드에 영향이 가도 될까??
테스트 코드를 위해 실제 코드에 영향이 가도 될까??
2022.12.26개발을 하며, "테스트 코드를 위해 프로덕션 코드에 영향을 줘도 될까?"라는 고민이 테스트 코드를 작성하다 보니 생겼습니다. 고민해본 예시는 다음과 같습니다. Querydsl을 사용하며 Projection을 사용할 때 Setter를 만들지 않고, field 주입을 이용해 객체를 생성할 수 있습니다. 팀 내에서 field 주입만 사용하고 있기에 Getter만 생성해서 사용했습니다. 문제는 테스트 코드를 작성하며, 모든 값을 채우는 All 생성자나 Setter가 없기에 객체를 생성한 후 Reflection을 이용해서 값을 채워야 했습니다. 결국 Builder나 All 생성자가 없어 Service 계층의 테스트 코드는 Reflection이 덕지덕지 붙고 말았습니다.. 어떤 상황이 있는지 알아봤고, 본론으로 테..
Springboot Test 코드 작성
Springboot Test 코드 작성
2022.03.18Test 코드를 작성하는 법을 알아보기 전에 Test 코드의 필요성에 대해서 알아보겠습니다. 1. 왜 Test 코드를 작성하는가? 크게 2가지 이유가 있습니다.' 1-1. Test 코드를 작성하지 않고 결과를 검증하는 과정은 비용이 많이 든다. Test코드 사용 X (싱글 애플리케이션 (Monolithic Arichitecture)에서의 모습) 검증 코드 작성 애플리케이션 실행 PostMan 혹은 브라우저 Request 요청 log 혹은 print로 결과 검증 원하지 않는 결과 발생 시 애플리케이션 종료 다시 코드 작성 위와 같은 로테이션이 원하는 결과를 얻을 때까지 돌아가게 됩니다. 간단한 애플리케이션이라도 실행하고 종료하는데 비용이 많이 듭니다. 하지만 Test 코드를 작성한다면 이야기가 달라집니다...
Springboot Dto는 많이 만들어도 될까?
Springboot Dto는 많이 만들어도 될까?
2022.02.22Dto란? Dto는 Data Transfer Object의 약자입니다. 계층 간 데이터 교환 역할을 합니다. DB에 저장되는 Entity를 감싸 Wrapper라고 생각할 수 있습니다. Entity를 클라이언트단과 연결되는 Controller에 사용할 때 문제점이 있습니다. 1. Entity의 스펙 노출 -> Entity의 모든 값이 외부에 노출 될 수 있습니다. 2. 기능에 따라 요구하는 데이터가 다름 -> signup 기능: 이름, 아이디 등등 , login 기능: 아이디, 패스워드 이러한 문제를 해결하기 위해 Dto를 사용합니다. 예를 보겠습니다. @RestController @RequiredArgsConstructor @Slf4j public class UserController { private ..
springboot [No Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator.] 오류
springboot [No Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator.] 오류
2022.01.10▶ 문제 springboot 2.6.2 버전을 이용하여 사이드 프로젝트를 진행했습니다. RestController를 만들고 Postman으로 테스트를 했는데 No Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator. 오류가 떴습니다. ▶ 코드와 사진 1. 요청을 받을 RestController입니다. UserDto를 @RequestBody로 받아 회원가입을 진행합니다. @RestController @RequiredArgsConstructor public class UserController { private final UserService use..