본문 바로가기

분류 전체보기

(872)
[Jira & Confluence] 20분마다 로그아웃 되는 현상! 몇 주전부터 Jira & Confluence이 20분마다 로그인이 풀리는 현상이 발생했다. JIRA는 그렇다고 쳐도 Confluence는 글을 20분 이상 쓰는 경우도 있어 갑자기 로그아웃을 하면 작성하던 내용이 날라가지 않나 당황하게 된다. 이게 별것 아니라고 생각할 수도 있는데 생각할 수록 불편했다. 20분마다 로그아웃이 된다는 것은 손목시계의 StopWatch로 lap을 찍어보니 대략 그런 주기로 로그아웃이 되고 있어서 실험적으로 알게 되었다. 그렇다면 누군가 20분 마다 로그아웃을 유발 시키고 있다는 것인데 Atlassian 제품을 설치 및 관리하고 있는 부서에서도 딱히 찾지 못했다. IntelliJ IDEA에서 Tasks 관리에서 JIRA를 등록해서 사용하고 있는데 혹시나 이것이 범인이 아닌가 ..
Spring Boot: JPA(Hibernate) 네이밍 전략 spring.jpa.hibernate.naming.physical-strategy 및 spring.jpa.hibernate.naming.implicit-strategy 을 통해 테이블 이름이나 컬럼 이름에 대한 네이밍 전략 설정이 가능하다. 네이밍 컨벤션에는 여러가지가 있다. camelCase: 앞자는 소문자 단어 사이에 대문자 PascalCase: camleCase와 같은데 첫 글자가 대문자이다. Initial Capitals, Initial Caps, InitCaps 로도 불린다. snake_case: 모든 문자는 소문자(lowercase)로 단어간 구분은 언더스코어(_)로 구분한다. kebab-case: 모든 문자는 소문자(lowercase)로 단어간 구분은 대시(-)로 구분한다. ALL CAPS:..
ServletModelAttributeMethodProcessor 와 @PathVariable ServletModelAttributeMethodProcessor 은 ModelAttributeMethodProcessor 상속받아 서블릿을 위한 위한 구현체이다. 가령 Spring MVC 에서 @PathVariable 을 이용해 URI 템플릿을 파라미터로 받아올 때 ServletModelAttributeMethodProcessor 가 사용된다. 사례 예로 아래와 같은 코드가 있을 때 requestNo 과 memberNo 에는 URI path의 템플릿 값이 들어오게 된다. @RestController public class VPNController { @GetMapping(value = "/vpn/{memberNo}/{requestNo}", produces = MediaType.APPLICATION_JS..
@NotNull이 Needs Work가 필요한 수준인가요? 코드 리뷰를 하다가 제목과 같은 질문을 받았다. @NotNull이 Needs Work가 필요한 수준인가요? 사업자등록번호에 대한 유효성 제약 수정이 있어서 PR을 받았는데 의견을 남기고 추가적인 작업이 필요할 것 같아서 Needs Work 로 마크를 했었다. 아래와 같은 요청 파라미터로 사용되는 객체이다. (실무 코드는 아니고 예제이다.) import lombok.Getter; import lombok.Setter; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @Getter @Setter public class MemberJoinRequest implements Member { @NotN..
JPA: @DataJpaTest 에서 트랜잭션 Rollback 이 안된 이유는? 어떤 기능의 변경에 대한 요청을 받았다. 마침 이전에 존재했던 기능에 테스트 코드가 없었다. 테스트 코드를 먼저 만들었다. 왜냐하면 변경 이후에 잘 동작하는지 안전망이 필요했기 때문이다. Unique index violation 이 발생 IntelliJ IDEA에서 테스트 묶음(Test Suites) 들을 돌릴 때는 문제가 없었다. 그런데 이상하게 로컬 환경에서 터미널에서 mvnw clean test 명령을 돌리면 테스트 하나가 깨진다. 원인을 찾아보니 DataIntegrityViolationException 가 발생했고, 세부적으로는 Unique index violation 이 발생했다. org.springframework.dao.DataIntegrityViolationException: could n..
Spring boot: HttpMessageConverters 는 누가 만들어줄까? RestTemplate 에 대해 통합 테스트를 만드는 과정에서 HttpMessageConverters 빈이 없다고 에러가 났다. 그러면 이 HttpMessageConverters 빈은 누가 만들어주고 있었을까? 스프링 부트에는 여러 Auto Configuration 이 있는데 HttpMessageConvertersAutoConfiguration 가 해주고 있었다. package org.springframework.boot.autoconfigure.http; @Configuration @ConditionalOnClass(HttpMessageConverter.class) @AutoConfigureAfter({ GsonAutoConfiguration.class, JacksonAutoConfiguration.c..
Google Bookmark: 북마크 서비스 중단 공지 2021-07-21 20:11 발행일 공지가 나온 것은 아직 못보았지만 서비스 위에 배너가 떴다. 2021년 9월 30일 이후에는 Google 북마크가 더 이상 지원되지 않습니다. 2022-04-17 업데이트 얼마전(?)까지는 추가/수정은 불가능하고 읽기 모드만 가능했는데 이제 404 에러가 발생한다.
아마존 vs 쿠팡 - 밀어서 주문하기 쿠팡에 입사하고 나서 쿠팡이 아마존을 따라하는 게 많다고 듣고 들었다. 지금은 쿠팡에 다니지 않지만 고객의 입장으로 서비스를 사용하다 보면 카피캣이라 할 정도로 비슷한 게 많다. 밀어서 주문하기 쿠팡 아마존 쿠팡의 내부 보도자료에 따르면 따라했다고 순순히 인정하는 내용이 들어가 있다. 원터치 또는 원클릭결제는 아마존이나 애플 등 실리콘밸리 기업들이 보편적으로 사용하는 결제 방식이다. 하지만 국내에서는 그 사례를 찾아 보기가 힘들었다. 쿠팡은 발상을 전환해 국내에서 처음으로 원터치 결제를 도입할 수 있었다.