일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 스프링 공부
- 플러터 공부
- Axon framework
- nestjs공부
- JPA예제
- DDD
- JPA공부
- 프로그래머스
- 스프링부트공부
- 자바공부
- 스프링부트
- nestjs
- 자료구조공부
- K8S
- JPA
- Flutter
- 스프링공부
- JPA 공부
- 코테준비
- 플러터 개발
- nestjs스터디
- querydsl
- JPA스터디
- 코테공부
- Kafka
- 기술면접공부
- 알고리즘공부
- 기술공부
- 카프카
- 스프링
- Today
- Total
목록분류 전체보기 (715)
DevBoi
Spring boot 기초 개념을 익혀보자 스프링 부트는 우선 뭐가 장점일까? 1. 프로젝트 생성 우선 spring.io에서 해당 스프링 프로젝트를 편하게 시작할 수 있다. 필요한 라이브러리를 편하게 선택해서 바로 시작할수 있다. 또한, devtool에 대한 편하게 선택하여, 프로젝트를 생성할 수 있다는 것이 장점이다. 버전에서는 snapshot은 개발중인 버전, m2 마일스 스톤으로 배포를 한 버전이지만 바뀔수 있다. 2. 의존성 관리 pom.xml에서 spring-boot-starter, spring-boot-dependencis가 있고, dependancy manager를 통해 의존성에 대한 버전관리를 자동으로 해준다. 물론 해당 xml에서 버전을 명시해서, 고정으로 사용할수도 있지만 스프링 부트에..
데이터 통신 방법에서 가장 많이 쓰이는 방식은 두가지가 있다. 두가지 장단점을 비교해서, 언제 어떤걸 쓸지 결정해보자 1. XML xml은 html 과 매우 비슷한 문자 기반의 마크업 언어이다. 장점 : 스키마를 사용하여, 데이터의 무결성을 검증할수 있다. 단점 : XML은 배열을 사용할 수 없고, 데이터를 읽고 쓰는 것이 Json 대비 느리다. 2.Json JSON은 경량 DATA 교환 방식이다. 데이터를 저장하고 전달하는 메타언어이다. javaScript 에서 객체를 만들때 사용하는 표현식을 의미한다. 장점 : JSON은 문자열을 전송받은 후에 해당 문자열을 바로 파싱하므로, XML 보다 빠르다. 단점 : JSON은 개발자가 문자열 데이터의 무결성을 검증해야한다.
소스트리에서 사용하다보면 굳이 안바꿔도 되는 로컬만의설정 때문에 바꿨다가 머지할때 이걸 삭제하거나 버리지 않으면, 소스 반영이 안되는 것이 있다... 귀찮다가 파일 별로 무시 인덱스를 한번 설정하면 다시는 해당 설정을 하지 않아도 된다는 것을 알게되었다. git update-index --skip-worktree [파일 경로] 이 부분을 터미널에서 치면, git 명령어로 unstaged파일들이 추적중지가 된다. 참고 반대로는 git update-index --no-skip-worktree [파일 경로] 이걸 사용해서 관리하자~ 대부분 다시 설정할 필요없는 파일들일때, (로그경로 저장, 혹은 스프링 설정 로그 저장 경로 등등에 유용)
소스트리에서 사용하다보면 굳이 안바꿔도 되는 로컬만의설정 때문에 바꿨다가 머지할때 이걸 삭제하거나 버리지 않으면, 소스 반영이 안되는 것이 있다... 귀찮다가 파일 별로 무시 인덱스를 한번 설정하면 다시는 해당 설정을 하지 않아도 된다는 것을 알게되었다. git update-index --skip-worktree [파일 경로] 이 부분을 터미널에서 치면, git 명령어로 unstaged파일들이 추적중지가 된다. 참고 반대로는 git update-index --no-skip-worktree [파일 경로] 이걸 사용해서 관리하자~ 대부분 다시 설정할 필요없는 파일들일때, (로그경로 저장, 혹은 스프링 설정 로그 저장 경로 등등에 유용)
jpa 관련 공부를 하면서 RDB의 관계에서 자바의 상속관계를 구현할수있을까 라는 주제로 공부를 했다. 관계형 데이터 베이스에서도 자바의 상속 관계 같은 슈퍼 타입과 서브 타입이 존재한다. 물론 jpa 기본 전략 등을 공부하면서 느꼈던 것이지만 여러 테이블에서 공통된 특성이 있다고 가정하면, 공통 된 특성을 슈퍼타입을 뽑고 나머지를 서브타입으로 내리는 것이다. 1) Roll up , 서브타입과 슈퍼타입들을 그냥 한테이블로 합치는 경우 -JPA에서는 단일 테이블 전략이라고 하는데 해당 작업은 Roll up 이라고도 한다고 한다. 서브 타입에서 사용하는 특성들이 적을 때 유용하다. 장점 속도가 빨라질수있다 단점 특정 다른 특성들이 많아지면 한 테이블에 부하가 심하게 걸릴수있어 오히려 성능이 저하될 위험이 존..
만약에 공통된 컬럼을 공통된 테이블에 다 쓴다? 예를 들어 수정,생성 시간에 대한 모든 값을 테이블 마다 필요하다라는 조건이 생겼다고 가정하자 요런 BaseEntity를 공통으로 가진다고 한다면, 요로케 category나, 슈퍼클래스에 대한 상속을 받으면 된다. 그렇게 되면 category에 대한 테이블은 아래와 같이 설계가 된다. 이렇게 슈퍼클래스에 대한 값도 테이블에 가지고 있게 된다. 참고로 Entity 클래스는 같은 Entity 나, mappedbySuperClass에 대한 것만 상속이 가능하니 참고해야한다.
자바나 객체는 상속관계가 존재하지만, 관계형 디비에는 해당 상속관계가 존재하지 않는다. 쉽게 말하면 상속관계 매핑은, 객체의 상속관계를 디비의 슈퍼타입 서브타입으로 매핑하는 것을 의미한다. 참고로 슈퍼타입 서브타입에 대해서는 별도 포스팅으로 진행하겠다. 무튼 이렇게 상속 관계 에 있을때 jpa 엔티티 설게를 다음 과 같이 했다고 가정한다. 뭐 굳이 코멘트가 필요 없을 정도이지만, 무튼 Movie라는 엔티티가 있고 뮤직과 북이 이 무비를 상속 받아서, 엔티티를 한다고 가정하자, 이대로 구동하면 디비 테이블 설계 쿼리는 아래와 같이 나간다. Hibernate: create table movie (dtype varchar(31) not null, id bigint not null, name varchar(25..
의존성 주입에 대해서는 3가지 방법이 존재한다. 1. 필드 주입 변수 선언부에 @Autowired를 붙인다. 예) 필드, 즉 변수 선언부에 @Autowired를 붙이면 된다. 2. 생성자 주입 사실상 저렇게 생성자에 주입을 받아도 되지만, final 과 RequiredArg 어노테이션을 사용해서 주입을 받아도된다 즉 lombok으로 의존관계를 설정하는 방법이다. 오류는 다른 이유에서 나는 거니까 무시하고, 해당 내용만 참고하도록 하자 3. 메소드 주입 setter 메소드를 사용해서 해당 의존성을 주입 받을 수도 있다. 필드고, 생성자고, 메소드고 를 떠나서 다 똑같이 @Autowired를 쓰고 있다는 것을 알수 있다. 이게 어떤식으로 동작을 하는걸까? 우선 @AutoWired는 의존관계를 주입할때 사용하..
1. 템플릿 메서드 패턴 슈퍼 클래스에서 정의한 기본 로직을 서브 클래스에서 필요에 맞게 구현해서 쓰는 방법 - 템플릿 메소드, 슈퍼클래스에서 기본 알고리즘 골격을 담는다. 예를 들면, 해당 클래스를 상속하는 클래스들은 해당 클래스를 호출하면, 동일 메소드 순으로 호출되게 된다. - 훅 메소드 : 추상화 되어있는 메소드를 자식 클래스에서 구현한다. 즉 템플릿 메소드 패턴은 슈퍼 클래스에서 기본적인 로직의 흐름을 만들고 그 기능의 일부를 추상 메소드나 오버라이딩이 가능한 protected 메소드 등으로 만든뒤 서브클래스에서 이런 메소드를 필요에 맞게 구현해서 사용한다. 2. 팩토리 메소드 패턴 추상화된 객체 생성 메소드를 서브클래스에서 구현하고, 슈퍼클래스에서는 해당 생성 메서드를 포함한 return타입만..
git://github.com/SpringSource/spring-framework.git 해당 git url에서 최신 라이브러리를 클론해보자, 그리고 어떤 기능들이 추가가 되었는지 확인 및 공부 해보자 클론을 완료하면, 소스트리에서는 히스토리를 볼수있다. 내가 내려받은 경로를 sts에서 열어주고, 안에 라이브러리 구성을 보자 aspectJ - 스프링 aop로 구현이 불가한 고급 aop관련 기능을 제공해주는 라이브러리다. 트랜잭션 관련 aop를 활용하여 처리하기 위해서는 꼭 필요하다. jakarta - 자카르타는 아파치 기반 오픈소스 솔루션을 배포하고 유지하는 솔루션이다. jackson - json관련 오브젝트 데이터 처리를 해주는 라이브러리다. netty-bom - 비동기 이벤트 기반 오픈소스 프레임워..