본문 바로가기

개발중

(617)
Spring 프로젝트에서 A DB 와 B DB 커넥션 맺어서 사용하려고 하는데 패키지명과 패키지 구조를 어떻게 잡아야할지 고민이야. Spring 프로젝트에서 (JAVA)A DB 와 B DB 를 커넥션 맺어서 사용하려고 하는데 패키지명과 패키지 구조를 어떻게 잡아야할지 고민이야. 몇가지 대안을 추천해줘 대안 1 src/main/java └─ com.yourcompany.yourproject ├─ a │ ├─ config │ ├─ entity │ ├─ repository │ ├─ service │ └─ controller └─ b ├─ config ├─ entity ├─ repository ├─ service └─ controller 대안 2 src/main/java └─ com.yourcompany.yourproject ├─ db │ ├─ a │ │ ├─ config │ │ ├─ entity │ │ └─ repository │ └─ b..
[JPA ERROR] No qualifying bean of type 'org.springframework.transaction.TransactionManager' available 트랜잭션을 사용하려하는데 트랜잭션이 하나 이상일 때 발생하는 에러라고 한다. 트랙잭션에 우선순위를 @Primary @Qualifier 어노테이션을 사용해 부여할 수도 있지만 설정 파일에 트랜잭션 참조 설정을 추가해주는 방식으로 해결했다. @Configuration @PropertySource({ "classpath:application.properties" }) @EnableJpaRepositories( entityManagerFactoryRef = "pomsEntityManagerFactory" , transactionManagerRef = "pomsTransactionManager" , basePackages = "com.rsn.test.api.*.dao.*" ) public class PomsJpa..
[MYSQL] Transaction And Lock (트랜잭션과 잠금) (MyISAM / InnoDB) MYSQL 에서 동시성에 영향을 미치는 잠금과 트랜잭션에 대해서 트랜잭션은 작업의 완전성을 보장해주는 것이다. 즉 논리적인 작업 셋을 모두 완벽하게 처리하거나, 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상이 발생하지 않도록 만들어주는 기능이다. 잠금과 트랜잭션은 서로 비슷한 개념 같지만 잠금은 동시성 제어하기 위한 기능이고 트랜잭션은 데이터의 정합성을 보장하기 위한 기능이다. 하나의 회원 정보 레코드를 여러 커넥션에서 동시에 변경하려고 하는데 잠금이 없다면 하나의 데이터를 어러 커넥션에서 동시에 변경할 수 있게 된다. 결과적으로 해당 레코드의 값은 예측할 수 없는 상태가 된다. 잠금은 여러 커넥션에서 동시에 변경할 수 있게 된다. 결과적으로 해당 레코드의 값은 예측할 수 없는 ..
[Spring] 다이나믹 프록시(dynamic Proxy) 다이나믹 프록시 ( dynamic Proxy ) 런타임시에 동적으로 만들어지는 오브젝트 java의 reflection을 이용해서 proxy 객체 생성(java.lang.reflect) 타겟 인터페이스와 동일한 형태로 생성 프록시 대상의 객체가 최소 하나 이상의 인터페이스를 구현했다면 JDK 동적 프록시를 이용하면된다. FactoryBean(팩토리빈)을 통해 생성 reflection이란 객체를 통해 클래스의 정보를 분석해 내는 프로그램 기법을 말한다. 스프링의 빈은 기본적으로 클래스 이름과 Property로 정의한다. 스프링은 지정된 클래스 이름을 가지고 reflection을 이용해 해당 클래스의 객체(object)를 생성한다. JDK Dynamic Proxy JDK Dynamic Proxy는 Proxy ..
[Spring] OAuth2.0 개념 및 작동방식 OAuth2 개념 OAuth 2.0(Open Authorization 2.0, OAuth2)는 인증을 위한 개방향 표준 프로토콜이다. 이 프로토콜에서는 Third-Party 프로그램에게 리소스 소유자를 대신해 리소스 서버에서 제공하는 자원에 대한 접근 권한을 위임하는 방식으로 작동되며 구글, 페이스북 등 외부 소셜 계정을 기반으로 간편하게 인증하는 기능이다. OAuth2 제공자 구글 페이스북 카카오 네이버 먼저 알아야 할 용어 Authentication(인증) 인증, 접근 자격이 있는지 검증하는 단계 Authorization(인가) 자원에 접근할 권할을 부여하고 리소스 접근 권한이 있는 Acess Token을 제공 Access Token 리소스 서버에게서 정보를 획득할 때 사용되는 토큰으로, 만료 기간이..
[JPA] 다른 컬럼명을 참조하는 연관관계에 대한 궁굼점 (referencedColumnName) ❓ 다른 컬럼명을 참조하는 연관관계에 대한 궁굼점 JPA 를 공부하며 궁굼한게 있어 질문 드립니다 ! 아래와 같은 테이블이 존재한다고 가정한다. QNA 테이블에 존재하는 Q_REG_USER , Q_UPD_USER 는 USER.U_SEQ 이다. 이렇게 서로 다른 컬럼명을 참조하고 있을경우 어떻게 대처해야 할지몰라 방법을 찾아본 후 referencedColumnName 를 사용해 명시를 해준 후 매핑을 해주니 내가 원하는 결과가 잘 나왔다. 하지만 실무에서 실제로 어떻게 쓰이는지 몰라 맞는 방법을 몰라 조언을 구합니다. 이런 경우에 이런 식으로 매칭을 시켜주는게 맞는지, 또한 어떻게 사용하는지도 알려주시면 감사할 것 같습니다 ! 위의 질문을 보고 구한 답은 아래와 같다. 답변 1 답변 2
[Spring] CORS 가 뭐야 ? Cors 란 무엇인가 ?현재 IP 가 다른 IP 로 리소스를 요청하는 구조에 대응하는 정책이다.Cors 는 웹 상에 있어 하나의 보안 정책이다.하지만 처음 겪으면 너무 당황스럽고 까다로운 보안 정책이지만 개념을 알고나면 잘 해결 할 수 있다!cors 처음 해결 시 난관 기록 ..( 하루 꼬박 걸림 ) API)" data-ke-align="alignCenter" data-og-description="성공 기록 CROS 는 이 블로그로 조금 이해를 얻었다. 요청시 Origin 에 요청 url 이 들어가고 응답해주는 응답에서는 Access Control Allow Origin 에는 요청을 허용해주는 url 이 들어가야 한다. 프론트에서 " data-og-host="soobindeveloper8.tistory...
[Git] 브랜치를 로컬과 원격에서 모두 삭제하는 법 원격에서 브랜치 삭제하기 원격에서 브랜치를 삭제하는 명령어 $ git push origin --delete [branch name] 예를 들어서 삭제하고 싶은 원격 브랜치 이름이 fix/authentication 이라면 $ git push origin —delete fix/authentication 그러면 이제 이 브랜치는 원격에서 삭제됐다. 더 짧은 버전의 명령어도 있다. git push : 이렇게 쓰면 된다. $ git push origin :fix/authentication -p 옵션은 가지치기(prune)를 한다는 뜻이다. 패치(fetch)를 하면 원격에서 이미 삭제된 브랜치는 목록에서 없어진다. $ git fetch -p remote의 branch 들을 확인할 수 있는 명령어 (원격 브랜치 확인..