| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- MySQL
- node.js
- spring
- 프로그래머스
- jsp
- BACK-END
- 프런트엔드
- 오라클
- oracle
- 코드 테스트
- jpa
- 정리
- 스프링부트
- 프론트엔드
- SQL
- 서버
- 알고리즘
- 디자인 패턴
- 쿼리
- 미니정리
- JavaScript
- 스프링
- 자바
- 백엔드
- java
- Next.js
- web
- 코드테스트
- 데이터베이스
- 자바스크립트
- Today
- Total
목록분류 전체보기 (357)
참치코더의 꿈 메모장
SSG(Static Site Generation) 1. Next.js가 getStaticProps()를 실행해서 데이터를 가져온다. 2. 그 데이터를 이용해 빌드 시점에 HTML 파일을 미리 만들어 둔다. 3. 사용자가 /page 같은 URL로 접속하면 Next.js가 이미 만들어둔 정적 HTML을 그대로 제공한다. 4. 브라우저는 React를 Hydration 해서 동적 기능이 작동하게 한다.123456789101112131415161718192021222324// pages/book/[id].tsxexport const getStaticPaths = async () => { const res = await fetch("https://example.com/api/books"); const books..
다형성 쿼리 - JPA에서 상속구조가 있을때 부모타입으로 쿼리를 날리면 JPA가 자동으로 자식 엔티티들을 함께 조회하는 것을 말한다. Item에 Album, Book이 상속되어 있다고 가정할때 Item 뿐만 아니라 Album, Book 엔티티도 전부 조회한다.1234List items = em.createQuery("select i from Item i", Item.class) .getResultList(); //JPA가 내부적으로 자식 테이블까지 다 합쳐서 하나의 결과로 만들어 준다.cs TYPE - TYPE 키워드를 사용하여 상속관계에서 특정 자식만 조회가 가능하다.- 이 객체가 실제로 특정 자식 타입인 경우만 필터링해서 가져온다.123ListItem> books = em.cr..
경로 탐색 - 경로탐색은 JPQL에서 엔티티의 속성을 점(.)으로 접근해서 연관된 엔티티나 값을 탐색하는 것이다.123456789101112131415161718192021@Entitypublic class Member { @Id @GeneratedValue private Long id; private String username; @ManyToOne private Team team;} @Entitypublic class Team { @Id @GeneratedValue private Long id; private String name;} SELECT m.team from Member m -> 경로 탐색 // m.team -> Member가 가진 team 필드..
프록시 패턴은 대상 객체에 직접 접근하지 않고, 대리 객체(Proxy)를 통해 접근하도록 만드는 디자인 패턴이다.즉 대리인이 실제 객체 대신 일을 처리하거나, 접근을 제어하는 구조이다. - 대상 객체에 대한 접근을 제어하는 패턴 Client -> Proxy -> RealSubject Client : 실제 기능을 요청하는 사용자Proxy (대리자) : RealSubject에 대한 접근을 제어(전/후 처리, 캐싱, 보안, 로깅 등)RealSubject (실제 객체) : 실제 비즈니스 로직을 수행1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253// Subject 인터페이스public i..
JPA 프로젝션(Projection) - 프로젝션은 SQL의 SELECT처럼 JPQL에서 엔티티 전체가 아닌 필요한 데이터만 선택해서 조회하는 기능이다. 프로젝션의 종류 엔티티 프로젝션 - 엔티티 전체를 조회하는 프로젝션- 영속성 컨텍스트로 관리되므로, 변경감지(Dirty Checking)가 가능하다.123ListMember> members = em.createQuery( "SELECT , FROM Member m", Member.class).getResultList();cs 임베디드 프로젝션 - @Embeddable 타입을 조회하는 프로젝션- 엔티티 내부에 속한 값이여서 영속성 컨텍스트로 관리가 된다.- 별도의 테이블로 분리되지 않는다.- 값 타입이라 불변(immutable)하게 설계하는 것이 좋..
비동기(Asynchronous) - 동기 : 한줄이 끝나면서 순차적으로 다음 줄이 실행되는 것- 비동기 : 어떤 작업이 끝나길 기다리지 않고, 다음 코드를 먼저 실행하는 것.12345console.log("1");setTimeout(() => console.log("2"), 1000);console.log("2"); // 비동기 실행으로 인하여 출력 순서가 1, 3, 2 순서로 실행이 된다.cs Promise - Promise는 비동기 작업의 완료 또는 실패를 나타내는 객체이다.1234567891011121314151617181920212223242526272829303132const promise = new Promise((resolve, reject) => { const success = tr..
- 값 타입 등을 List, Set, Map과 같은 컬렉션으로 보관할 때 사용하는 매핑 방식이다.- 엔티티가 아닌 값이므로 독립적인 테이블이 없고, JPA가 별도의 테이블을 만들어 관리하는 방식1234567891011121314151617181920@Entitypublic class Member { @Id @GeneratedValue private Long id; private String name; @ElementCollection @CollectionTable( name = "member_address", joinColumns = @JoinColumn(name = "member_id") ) private SetAddress> addr..
상태 패턴은 객체의 상태 변화에 따라 행동을 다르게 하고 싶을때 사용하는 디자인 패턴이다.이를 통해 if-else, switch가 난무하는 코드를 객체지향적으로 개선할 수 있다. - 상태 패턴을 사용하는 이유가 조건이 수십개 또는 수백개 이상 늘어날때마다 if-else를 사용하면 그만큼 유지보수가 어렵고, 비즈니스 로직이 한 곳에 뭉쳐지기 때문에, 조건이 많이 발생할 때 상태 패턴을 사용해야 한다. - 1개의 행동당 한개의 클래스를 만들어서 전달하는 형식으로 개발하는 방법이 상태패턴이다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636..