일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Springsecurity
- Java
- 다이나모디비
- MockMvc
- 스프링
- IdClass
- AWS
- Route53
- 오류
- markerinterface
- Spring
- 테스트코드
- 자바스프링
- filterexpression
- 스프링테스트
- awscli
- javaspring
- 도메인
- testresttemplate
- secondaryindex
- annotation
- EmbeddedId
- query
- 자바
- compositekey
- awscloud
- 로드밸런서
- partiql
- 개발
- DynamoDB
- Today
- Total
목록Java (13)
아장아장 개발 일기
maven 버전 3.8.1 부터 디폴트로 http가 block되어 maven 버전 다운그레이드로 해결하였다. (3.6.2) maven-default-http-blocker (): Blocked mirror for repositories: [blahblah (, default, releases+snapshots)] maven 버전 다운그레이드 방법은 아래 블로그에서 확인할 수 있다. https://dev-youngjun.tistory.com/109
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/AtHlb/btrWopvpuS3/dk0LIGfgUiu0jk9DRkY660/img.png)
https://api.odcloud.kr/api/nts-businessman/v1/status 위의 주소를 호출하면 특정 사업자등록번호의 상태값이 리턴된다. 그런데 막상 호출하면 계속 DATA_MALFORMED 혹은 BAD_JSON 오류가 발생했다. (RestTemplate 사용) 테스트 소스를 작성해 호출해 testRestTemplate으로 호출해보았는데, 잘된다 …?! 흠 … 🤔 왠지 RestTemplate과 testRestTemplate간의 차이를 확인하면 오류의 원인을 찾을 수 있을 것 같아, testRestTemplate의 document를 읽던중…! TestRestTemplate의 경우 Basic authentication headers를 선택적으로 가질 수 있다고 나와있는데에서 힌트를 얻었다..
CrudRepository와 JPARepository의 차이에 대해 배우던 중, 마커 인터페이스(Marker Interface)에 대한 개념이 나와 공부할겸 Baeldung의 관련 게시글을 번역, 정리해보았다. 마커 인터페이스란? 마커 인터페이스라 하면 아래를 의미한다. 내부에 메서드나 상수가 없는 인터페이스 객체에 대해 런타임 타입의 정보를 제공 → 컴파일러와 JVM이 객체에 대해 추가적인 정보를 확인할 수 있음 태깅 인터페이스(tagging interface)라고도 불림 코드 스멜(code smell)을 야기할 수 있어 잘 사용해야함 최근 개발 동향은 같은 용도로 어노테이션 사용을 선호하는 편 → 마커 인터페이스와 어노테이션간의 공통점, 차이점은 아래의 '마커인터페이스 VS 어노테이션'에 서술 JDK..
에러내용 아래의 에러메세지가 뜨며 프로그램 실행에 실패했다. org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.fasterxml.jackson.datatype.jsr310.JavaTimeModule]: Unresolvable class definition; nested exception is java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ser/std/ToStringSerializerBase at org.springframework.beans.BeanUtils.instantiateClass (BeanUtils.java:149) at org.spr..
IntelliJ에서 프로그램을 실행시켰을땐 잘 찾아지던 file이 Jar파일로 만든후 해당 파일을 찾으려하면 FileNotFound Exception이 발생했다. 검색해보니 이미 여러 사람이 비슷한 오류를 경험한 듯 했다. 왜 IntelliJ에서는 잘 찾아지던게 Jar로 실행시키면 안되는건지 찾아보니, Jar 파일 안의 리소스들은 file이 아닌, stream이기 때문 이라고 한다. (기존 소스) ClassPathResource resource = new ClassPathResource(FilePath); String someText = new String(Files.readAllBytes(Paths.get(resource.getURI()))); (변경후) InputStream resourceStream..
스프링 클래스를 빈등록 할때면 component, service, repository 어노테이션 중 어떤 걸 써야할지 헷갈렸습니다. repository는 비교적 다른 두개와 구분하기 쉬웠는데, component와 service 어노테이션이 특히 헷갈리더라구요. 이번에 baeldung에서 셋의 차이를 간략하게 다룬 글을 찾아서 한번 정리해보았습니다. @Component 1. 스프링이 관리하는 컴포넌트로 등록됨 2. 스프링은 @Component로 등록된 bean만 인식함3. @Service와 @Repository도 @Component 어노테이션을 포함하기때문에 ApplicationContext로 등록됨. @Repository 1. 특정 persistence에 맞는 예외를 찾고 스프링의 일원화된 체크 되지 않..
자바 환경세팅할때 항상, Java, JDK, JVM, JRE, SDK의 개념이 헷갈렸습니다. 이번에 새로운 프로젝트 소스를 만들 기회가 있어, 해당 개념을 먼저 정리하고 시작했는데요. 그때 참고한 블로그 글을 요약해서 소개해드리려고 합니다. (19년도에 작성된 블로그글이라 업데이트가 필요한 부분이 있을 수 있습니다.) 먼저, Java 무슨 버전을 사용해야할까요? 많은 레거시 프로젝트들이 여전히 Java 버전 8에 머무르고 있습니다. 몇몇 레거시 프로젝트들은 버전 5, 6를 사용하는 경우도 있습니다. 만약 가장 최신 IDE, 프레임워크, 빌드툴을 사용해 새로운 프로젝트를 개발한다면 Java 11 혹은 그 이상의 버전을 사용해도 좋습니다. 왜 많은 회사들이 자바 8버전에 머물러 있을까요? 빌드툴(Maven,..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cb0Mlv/btrER16TtmJ/kByJD5E31pSibkkssN9xOk/img.png)
Java Spring과 AWS Cognito를 연동하는 방법을 알아봅니다. 로그인, 회원가입, 로그아웃까지 가장 기본적인 회원인증 기능을 구현합니다. 1. Amazon Cognito 세팅하기 먼저 아래 두가지를 유의하여 aws cognito console에 userpool을 생성합니다. (1) CallbackURL 스프링 환경설정 파일의 redirect-uri와 일치하도록 설정(로그인후 랜딩 페이지) (2) logoutURL 스프링 환경설정 파일의 logoutUrl과 일치하도록 설정(로그아웃후 랜딩페이지) 2. Spring 세팅하기 build.gradle implementation 'org.springframework.security:spring-security-oauth2-client' implemen..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/buMgKl/btrBaL74UyO/TQ2Dim5jmAdv96433eBdwK/img.png)
Spring Gradle에서 Local DynamoDB configuration 하기 이번 포트에서는 스프링에서 Local DynamoDB를 세팅 후 User 테이블에 아이템을 등록하는 테스트를 하려 합니다. 먼저 아래의 세 개 의존성을 주입합니다.(맨 아래 baeldung 소스 참고함) build.gradle dependencies{ ... implementation 'com.amazonaws:aws-java-sdk-dynamodb:1.12.205' implementation 'org.springframework.data:spring-data-releasetrain:Lovelace-RELEASE' implementation 'com.github.derjust:spring-data-dynamodb:5.1..
‘hasAnyRole()’을 사용하려면 role enum 클래스에 롤 이름이 ‘Role_’ 접두사와 함께 쓰여야합니다. ‘hasAnyAuthority()’는 접두사 없이 사용합니다. Role은 큰 개념의 역할을 의미하는 반면, Authority는 보다 작은 기능 단위의 권한을 의미합니다. 참고 : https://minholee93.tistory.com/entry/Spring-Security-Authorities-Role