분류 전체보기

spring

spring 계층 구조

프로젝트를 진행하면서 Controller와 Service, Domain, Repository로 계층을 분류해서 작업을 해왔는데 Dto와 VO, Dao같은 것들이 정확히 무엇인지 개념이 잡히지 않아 계층 구조를 정리하고자 한다. Controller @Controller 사용 request와 response에 대한 영역을 담당한다. Service @Service 사용 Controller와 Dao(Repository) 사이에서 사용된다. Repository Dao 영역으로 DB에 접근한다. DB 테이블보다 객체 중심의 Layer Repository로 다루는 객체를 다루기 위해 여러 Dao(여러 테이블) 사용 가능 영속성 객체임을 숨김 (구현체가 인프라 계층에 숨겨져 있음) Repository의 인터페이스는 도..

spring/JPA

@GeneratedValue - GenerationType의 AUTO, IDENTITY 차이점

@GeneratedValue(strategy = GenerationType.AUTO) default insert 쿼리 전에 다음 id 값의 select, update 쿼리를 실행한 후 업데이트된 시퀀스 값으로 insert 쿼리 실행 @GeneratedValue(strategy = Generation Type.IDENTITY) pk 값 없이 insert 쿼리 실행 후 DB의 auto_increment 동작이 수행됨

spring/JPA

외래키를 복합키로 사용

외래키를 복합키로 사용하기 위해서는 연관관계를 맺어주고 JoinColumns으로 복합키의 id를 설정해야 한다. 이때 ManyToOne의 속성을 적절히 맞춰줘야 한다. (cascade 등) @Entity @Table(name = "project_interest_relation") @Data @ToString @AllArgsConstructor @NoArgsConstructor @IdClass(ProjectInterestRelationId.class) public class ProjectInterestRelation { @Id @ManyToOne(cascade = CascadeType.REMOVE) @JoinColumn(name = "prj_id") private Project project; @Id @M..

spring/JPA

복합키

기본 Entity 클래스와 복합 기본키를 표현하기 위한 PK 클래스를 정의해야 함 public, 기본 생성자가 있어야 함 implements Serializable equals와 hashCode를 오버라이딩 해야 함 @EmbeddedId, @IdClass 둘 중 하나로 사용 가능 EmbeddedId가 IdClass 방식보다 더 객체지향적인 방식임 명시적으로 확인하기는 더 어려움 하나의 복합키만 존재 -> EmbeddedId, 매핑이 많이 존재 -> IdClass @IdClass PK 클래스 Serializable을 implements한다 복합키 사용하면 직렬화를 해줘야 함 @Data @NoArgsConstructor public class ProjectInterestRelationId implements..

spring/JPA

외래키

외래키 지정 RDB는 관계형 데이터베이스라 사용할 외래키 하나만 있으면 되지만 java는 객체지향 언어이기 때문에 객체를 전달해주는게 좋다고 한다. User의 usr_id를 Board에서 외래키로 사용하고자 할 경우, user_id만을 외래키로 사용하는 것이 아닌 User 객체 자체를 외래키로 사용하는 것이다. 연관관계 매핑 방향 단방향 관계 : 한 쪽만 참조 양방향 관계 : 서로 참조 엔티티가 서로 참조해야할 경우 양방향으로, 한쪽만 알면 될 경우에 단방향으로 매핑 다중성 @OneToOne 일대일 하나의 엔티티가 하나의 엔티티만 사용 가능 (하나의 member는 하나의 basket 사용 가능) 1:1 관계에서 대상 테이블에 외래키 저장하는 단방향 관계는 JPA에서 지원 X @OneToMany 일대다 -..

앱개발

[react-native] run-android error : Module not found

모듈을 찾지 못한다는 에러가 계속 나서 환경 변수 설정도 다시 해주고.. intellij에서 모듈 추가도 해주고.. npm i -g react-native-cli 위의 명령어로 react-native도 계속 설치해주고.. 애뮬레이터도 다시 만들어보고.. 아주 많은 것을 고쳤는데, 원인은 바로 경로에 한글이 있어서였다! 하하 프로젝트 경로까지의 모든 폴더 이름을 영어로 고치니 아주 잘 실행되었다 ^^

DevOps/Docker

Docker 설정 - wsl 설치

Docker를 처음 사용하는데 무한 starting이 걸렸다. 찾아보니 가상 머신 환경이 되어있지 않아서 생기는 오류인 것 같다. windows에서 Docker를 사용하기 위해 찾아보니 Hyper-V를 사용하라는 글이 많아 사용하고자 했으나 똑같이 했는데도 계속 설치조차 안됐다. 그 이유는 바로바로~ Hyper-V는 Windows 10 pro에만 지원이 되고 내 windows는 Home 버전이어서 wsl을 사용해야 했다.. 하지만 wsl 설치 명령어를 알아듣지 못했고.. 엄청난 구글링 끝에 윈도우 최신버전만이 wsl을 사용할 수 있다는 정보를 얻었다.. 내 윈도우는 vitual box와의 충돌? 때문에 20년도 7월부터 업데이트가 안 되어 있었던 상태였고, box를 삭제하고 업데이트를 해줬다. (업데이트..

DevOps

[travis] deploy 관련 yml

프로젝트 구조가 git repo -> project (gradle 위치) 이어서 yml 파일은 최상단에 위치하고 gradle은 내부 폴더에 위치하는 상황이어서 deploy를 할 때 현재 위치를 지정하는 일이 중요했다. before_deploy: - cd ../ - mkdir -p before-deploy - cp appspec.yml before-deploy/ - cd project - cp scripts/*.sh ../before-deploy/ - cp build/libs/*.jar ../before-deploy/ - cd ../ - cd before-deploy && zip -r before-deploy * - cd ../ && mkdir -p deploy - mv before-deploy/befor..

hahihi
'분류 전체보기' 카테고리의 글 목록 (18 Page)