왜 사용하는지, 어떻게 돌아가는지는 하는 법 이후에 알아보도록 하자. gradle 에 spring-security-crypto 추가 dependencies { implementation 'org.springframework.security:spring-security-crypto:5.7.1' } maven을 쓴다면 아래처럼 추가 org.springframework.security spring-security-crypto 5.7.1 PasswordEncoder Bean 등록 @Configuration public class CommonConfig { @Bean public PasswordEncoder passwordEncoder() { return PasswordEncoderFactories.createD..
https://developer.apple.com/kr/news/?id=12m75xbj 6월 30일부터 시작되는 계정 삭제 요구 사항 - 최신 뉴스 - Apple Developer App Store 심사 지침 5.1.1(v)에 설명된 대로, 계정 생성을 지원하는 앱은 2022년 6월 30일부터 사용자가 앱 내에서 계정을 삭제할 수 있도록 허용해야 합니다. 해당 기한은 본 요구 사항을 적용하는 developer.apple.com 2022년 6월 30일 부터 iOS앱은 탈퇴 시, 애플 연동해제를 필수로 넣게 됐다. - 사족 ( 애플 연동해제를 넣게 된 과정 ) 더보기 2022 관광공모전을 준비하면서 우리가 준비한건 iOS앱이기 때문에 당연하게도 애플로 로그인을 넣어야했다 나는 서버를 맡았기에 앱을 맡은 친구..
Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException" 서버 API 제공을 위해서 swagger 설정을 하다가 해당 에러가 발생했다. 구글링해보니 Spring boot 2.6버전 이후에 spring.mvc.pathmatch.matching-strategy 값이 ant_apth_matcher에서 path_pattern_parser로 변경되면서 몇몇 라이브러리(swagger포함)에 오류가 발생한다고 한다. 따라서 application.properties 에 아래처럼 추가해주면 된다고 한다. spring.mvc.pathmatch.matching-strategy = ANT_..
Execution failed for task ':compileQuerydsl'. > invalid source release: 11 공모전 준비로 Querydsl 을 활용한 기본 프로젝트 생성 후, 빌드하는데 해당 오류가 났다. 첫줄만 보고 querydsl 문제인줄 알고 엄청 헤맸다. 그러다 다음 줄인 'invalid source release: 11'을 보고 아 버전문젠가..? 싶어서 확인해봤는데 뭐지.. 11로 다 설정되어있었다. 좀더 찾아보니 settings 에서도 설정을 바꿔주어야 했다. (Settings > Build, Execution, Deployment > gradle) 나는 gradle이라서 저 부분을 수정했지만 maven의 경우 바로 위에 있는 Maven탭에서 수정하면 되는 것 같다...
현생을 사느라 블로그 관리가 뜸했다.(사실 관리랄것도 없는 기록 블로그긴 하지만) 한동안 많은 일이 있었다. 1. 이직 이직 한지 5개월이 자나간다. 현 직장에 적응하고 사람들과 친해지고 일을 해나가고 있다. 기존에 하던 java프로젝트는 이어서 하면서 go 프로젝트를 같이 겸하고 있고 현 직장이 aws와 비슷한 서비스를 제공함에 따라 k8s 등 cloud 환경을 다소 경험중이다. 2. 공모전에 통과했다. 작년에 떨어진 '관광데이터 활용 공모전'에 다시금 지원했다. 주제는 작년과 똑같이 tour api를 활용한 앱 또는 웹이었고 이번에는 좀더 공을 들여 기획서를 제작해 제출하였다. 놀랍게도 기획서가 통과되어 1차 합격자 명단에 들 수 있었다. 친구가 ios 개발자라서 프론트를 맡고 내가 백엔드를 맡아 앱..
## Proxy 프록시 em.find() // DB를 통해 실제 엔티티 객체 조회 em.getReference() // DB 조회를 미루는 가짜(프록시) 엔티티 객체 조회 - 프록시 객체를 초기화 할 때 프록시 객체가 실제 엔티티로 바뀌는 것이 아니라 초기화되면 프록시 객체를 통해서 실제 엔티티에 접근 가능. - 프록시 객체는 처음 사용할 때 한 번만 초기화. - 프록시 ≠ 엔티티. - instanceOf 사용. (객체와 비교) - 프록시 객체는 원본 엔티티를 상속받음 - 영속성 컨텍스트에 이미 엔티티가 존재하면 프록시를 따로 반환하지 않음 (getRefer 해도 프록시가 아닌 엔티티 반환) - 프록시 먼저 호출하고, 엔티티를 호출하면 엔티티도 프록시를 반환함 - 영속성 컨텍스트를 날리면( em.deta..
** Transaction 안에서 하는 것이 중요 EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); //do something tx.commit(); em.close(); emf.close(); @Entity //@Table(name = "mbr") // Member 객체를 mbr 테이블에 매핑 public class Member { @Id // primary key // 값 직접 할당 //@GeneratedValue // 값 자동 할당 p..
JPA ? - Java Persistence API - 자바 진영의 ORM 기술 표준 - 기술명세 ORM ? - Object-Relation Mapping - 객체는 객체대로, DB는 DB대로 - SQL Mapper 로 직접 query를 만들어 DB조회 > mybatis - 객체와 DB의 데이터를 매핑해서 query 자동 생성 > JPA Hibernate ? - JPA의 구현체 - DataNucleus, EclipseLink 등 다른 구현체도 존재. Spring Data JPA ? - JPA를 쉽게 사용하기 위해 스프링에서 제공하는 프레임워크 아래는 유명한 개념도 1. Application 2.1 JPA (Raw JPA 사용) 2.2 Spring Data JPA (Repository 사용) > JPA 3..
개발자로 일하면서 거의 대부분의 프로젝트는 mybtis를 사용하여 개발했다 JPA는 겉 핥기식으로 토이프로젝트 정도만 진행해보았다 최근 이직 준비를 하면서 JPA를 사용,요구하는 회사가 많아졌다는걸 깨달았다. 물론 현재 회사에서도 JPA를 사용하진 않는다 JPA를 사용해보지 않았기에, 아무래도 이직 준비할때 JPA를 사용하는 회사들은 선택권에서 제외됐다. (사실 JPA를 사용하는 곳도 지원은 해봤지만 면접에서 JPA에 대한 이해도가 높지 않아 좋은 결과를 맺긴 힘들었다.) 더 효율적인 개발을 위해 단단한 내 자신을 만들기 위해 그렇게 JPA 공부의 서막이 올랐다. 내돈내산으로 김영한님의 JPA 강의를 인프런에서 듣기 시작했고 구글링으로 많은 대단한 개발자분들의 도움을 받을 예정이다. 제대로된 정리 글을 ..