기초
-
@RedisHash 이슈 트랙킹기초/JAVA 2025. 4. 1. 08:41
IssueRedisHash로 저장한 키가 expired 되지않고 남아있음, 그러나 repository에서 findAll을 하게되면 null인 상황 $ redis-cli MONITORsave1743129798.849147 [0 127.0.0.1:55838] "DEL" "status:2"1743129798.850581 [0 127.0.0.1:55838] "HMSET" "status:2" "_class" "com.test.test.Status" "status" "UNKNOWN"1743129798.851483 [0 127.0.0.1:55838] "SADD" "status" "2"1743129798.851978 [0 127.0.0.1:55838] "EXPIRE" "status:2" "60" $ CONFIG SET..
-
[JS] Map, Filter, Reduce기초/자바스크립트 2022. 12. 17. 02:53
인프런 강의 정리 함수형 프로그래밍과 Javascript ES6+ *custom Map 함수 /** f : 맵 속성을 위임할 함수 iter : 이터러블을 반환하는 제너레이터 function : 이터러블을 받아 맵을 생성하는 함수 **/ const map = (f, iter) => { let res = []; for (const a of iter) { res.push(f(a)); } return res; }; *원하는 value만 맵으로 생성 console.log(map(p => p.name, products)); console.log(map(p => p.price, products)); /** let names = []; for (const p of products) { names.push(p.name)..
-
[JS] 제너레이터기초/자바스크립트 2022. 12. 17. 00:40
인프런 강의 정리 함수형 프로그래밍과 Javascript ES6+ 일반함수 이름에 *을 붙여 제너레이터 함수를 만든다 제너레이터 함수 : 이터레이터를 만들어준다. 마지막 return 값은 done을 할 때 반환되는 값이다. function *func() { yield 1; if ( false ) yield 2; yield 3; } 제너레이터는 문장을 순회할 수 있는 값으로 만들 수 있다. 제너레이터를 통해 순회할 수 있는 이터러블을 쉽게 만들 수 있다. //제너레이터 코드를 이용한 홀 수 이터러블 만들기 //1씩 무한하게 증가시키는 함수 function* infinity(i = 0) { while (true) yield i++; } //1씩 무한하게 감소시키는 함수 function* infinity2(i..
-
[JS] 일급 함수와 고차함수기초/자바스크립트 2022. 12. 14. 19:04
인프런 강의 정리 함수형 프로그래밍과 Javascript ES6+ 일급함수 - 함수를 값으로 다룰 수 있다. - 조합성과 추상화의 도구이다. - 함수가 값으로 다뤄질 수 있다. 고차함수 - 함수를 값으로 다루는 함수 - 함수를 인자로 받아서 실행하는 함수 -일급함수 예제 const inc = x = x + 1; log( inc ); // x = x + 1 log( inc(10) ); // 11 const func1 = () = () => 1; const func2 = func1(); log( func1() ); // () => 1 log( func2 ); // () => 1 log( func2() ); // 1 고차함수 - 함수를 인자로 받아서 실행하는 함수 const apply = func => fun..
-
[JPA] 식별관계, 비식별 관계, 복합키기초/JPA 2022. 10. 11. 13:01
식별관계 부모 테이블의 기본키(FK) + 현재 테이블의 기본키를 합쳐서 기본키로 사용하는 형태 Owner ID (PK) CHILD owner_id(PK, FK) id (PK) 비식별관계 필수적 비식별 관계 : 외래 키 NULL (X) 선택적 비식별 관계 : 외래 키 NULL (O) 복합 키 : 비식별 관계 매핑 Id가 하나일 경우 @Entity public class TEST { @Id private String id; } 키가 2개 이상일 경우 - 아래와 같은 복합키에 관련된 로직을 구현해야 한다. - hasCode와 equals를 구현하여 @IdClass - 관계형 데이터베이스 설계 중심 @EmbeddedId - 객체지향 중심
-
[JPA] 객체간의 매핑기초/JPA 2022. 10. 11. 11:40
상속 DB에는 상속 개념이 없지만 DB모델링 기법중 슈퍼타입 - 서브타입 모델링 기법이 상속 개념과 비슷하다. 1. 조인전략 - 각각의 엔티티를 만든다. - 자식 테이블은 부모 테이블의 기본 키를 받아서 기본 키 + 외래 키로 사용하는 전략 - 부모 테이블에서는 자식테이블을 구분하는 컬럼을 생성 Character ID 이름 능력치 Jobs (자식 구분 컬럼) Warrior Mage Rogue Character_ID (PK, FK) 힘(power) Character_ID (PK, FK) 지능(intellect) Character_ID (PK, FK) 행운(luck) @Entity @Inheritance(strategy = InheritanceType.JOINED) @DiscriminatorColumn(na..
-
[JPA] 연관관계기초/JPA 2022. 10. 8. 18:20
방향 DB테이블의 관계는 항상 양방향이다. 객체는 한 쪽만 참조할 수 있고, 양쪽 모두 참조할 수 있다. 양방향 관계 양쪽 객체가 단방향으로 서로를 참조할수 있는 관계다. 연관관계 주인 ( Owner ) 객체가 양방향 관계가 되면 주인을 정해야 한다. 객체 그래프 탐색 관계가 형성된 객체는 참조를 통해 연관관계를 탐색할 수 있다. School school = student1.getSchool(); 객체 관계 매핑 ex) Studen (M) : School (1)의 관계 @Entity public class Student{ @Id private String id; @ManyToOne @JoinColumn(name="SCHOOL_ID") private School school; public void setS..
-
[JPA] JPA 어노테이션기초/JPA 2022. 10. 8. 17:04
@Entity 더보기 JPA가 관리하는 테이블과 매핑할 클래스 - 기본 생성자 필수 ( 파라미터가 없으며 public protected 생성자 ) - final, enum, interface, inner 클래스에 사용할 수 없다. 실제로 구현되며 변경가능한 클래스에만 적용가능 @Table @Id 더보기 기본키 @GenerationType 더보기 - IDENTITY : DB에 위임 - 데이터베이스가 식별자를 구하므로 쓰기 지연이 동작하지 않는다. (DB와 한번통신) - SEQUENCE : DB 시퀀스를 활용한 기본키 - DB의 시퀀스를 사용하므로 DB와 2번통신한다. - allocationSize : sequence 전략 최적화, 미리 지정된 갯수만큼 시퀀스를 등록한다. - TABLE : 키 생성 테이블을..