WorkHard 66

[SQLD 개발자] 기출문제 공부(21회)

1. 데이터 모델링? 데이터베이스를 구축할 때 참고되는 모델은 물리적 데이터 모델링이다. 데이터 모델링의 3요소는 Thing, Attributes, RelationShip이다. 개념 모델링에서 물리 모델링으로 가면서 더 구체적이며 개념 모델링이 가장 추상적이다. 논리 모델링의 외래키는 물리 모델에서 반드시 구현되지는 않는다.(선택사항이다.) 개념적 데이터 모델링 : 추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행, 전사적 데이터 모델링, EA 수립 시 많이 이용됨 2. Entity? Entity는 사람, 장소, 물건, 사건, 개념 등의 명사에 해당한다. Entity는 업무상 관리가 필요한 관심사에 해당한다. Entity는 저장이 되기 위한 어떤 것이다. 3. SQL문의 결과값? SELECT..

WorkHard/자격증 2023.02.28

[SQLD 개발자] 기출문제 공부(21회)

1. 데이터베이스 테이블의 제약조건(Constraint)? Check 제약조건은 데이터베이스에서 데이터의 무결성을 유지하기 위해 테이블의 특정 칼럼에 설정하는 제약이다. 기본키(Primary Key)는 반드시 테이블 당 하나의 제약만을 정의할 수 있다. 고유키(Unique Key)로 지정된 모든 칼럼들은 Null값을 가질 수 있다. 외래키(Foreign Key)는 테이블 간의 관계를 정의하기 위해 기본키(Primary Key)를 다른 테이블의 외래키가 참조하도록 생성한다. 2. T1, T2, T3에 들어갈 값은? 다중행 입력 쿼리문으로 Case문과 동일하게 수행되며 WHEN을 만족하면 종료한다. 그래서 T1행에는 2, 3 T2행에는 NULL, T3행에는 1이 입력된다. 3. 문자열 중 m위치에서 n개의 ..

WorkHard/자격증 2023.02.27

[SQLD 개발자] 기출문제 공부(21회)

1. 인덱스의 특징 인덱스는 원하는 데이터를 쉽게 찾을 수 있다록 돕는 책의 색인과 유사한 개념이다. 인덱스는 테이블을 기반으로 선택적으로 생성할 수 있는 구조이다. 인덱스의 기본적인 목적은 검색 성능의 최적화이다. 검색 조건을 만족하는 데이터를 인덱스를 통해 효과적으로 찾을 수 있도록 돕는다. DML작업은 테이블과 인덱스를 함께 변경하므로 느려지는 단점이 존재한다. 인덱스 데이터는 인덱스를 구성하는 칼럼의 값으로 정렬을 수행한다. 인덱스 중 B-Tree 인덱스는 Equal 조건뿐 아니라 BETWEEN, >과 같은 연산자로 검색하는 범위 검색에도 사용될 수 있다. 2. SubQuery - SubQuery의 특징 SELECT 스칼라 서브쿼리 : 스칼라 서브쿼리는 한 행, 한 컬럼만을 반환하는 서브쿼리를 말..

WorkHard/자격증 2023.02.23

[SQLD 개발자] 기출문제 공부(21회)

1. 정규화, 반정규화? 정규화의 장점 테이터베이스 변경 시 이상 현상을 제거할 수 있다. 정규화된 데이터베이스 구조에서는 새로운 데이터 형의 추가로 인한 확장 시, 그 구조를 변경하지 않아도 되거나 일부만 변경해도 된다. 데이터베이스와 연동된 응용 프로그램에 최소한의 영향만을 미치게 되어 응용프로그램의 생명을 연장시킨다. 정규화의 단점 릴레이션의 분해로 인해 릴레이션 간의 JOIN연산이 많아진다. 질의에 대한 응답 시간이 느려질 수도 있다. 데이터의 중복 속성을 제거하고 결정자에 의해 동일한 의미의 일반 속성이 하나의 테이블로 집약되므로 한 테이블의 데이터 용량이 최소화되는 효과가 있다. 데이터를 처리할 때 속도가 빨라질 수도 있고 느려질 수도 있다. JOIN이 많이 발생하여 성능 저라가 나타나면 반정..

WorkHard/자격증 2023.02.22

[Project] Java Spring 카카오페이(3)

1. 코드정리 - PaymentService 결제 요청을 하는 URL을 보내주는 코드. 예약정보를 조회하고 결제 페이지 요청을 위한 Header값과 그 안에 들어갈 Params값들을 세팅해 준다. 그리고 Feign Client요청을 해주고 결제 요청이 오면 해당 데이터를 예약 정보에 저장해 준다. 예약 정보를 반환해 주는 코드. 여기서 Pg_Token을 받아서 반환해 준다. 예약정보를 조회해서 해당하는 예약 정보반환을 위한 Header값과 Params값들을 세팅해 주고, Feign Client를 요청해 예약 정보를 반환해서 결제가 성공하면 예약 상태를 변경해 주고 메세지를 출력해 준다. 결제 취소와 결제 실패 시 상태를 변경해 주는 코드. - PaymentController 결제 요청을 하는 PostMa..

WorkHard/Project 2023.02.17

[Project] Java Spring 카카오페이(2)

1. 코드정리 - 일단 RestTemplete 방식과 Feign Client 방식이 있는데 Feign Client방식으로 코드를 작성하였다. Ready로 카카오페이 서버에 정보를 전달해서 결제 URL을 요청한다. 그리고 카카오페이 결제가 성공하면 Approve로 예약 정보를 전달해준다. - ReadyToPayInfo 결제에 필요한 정보들을 전달해주는 클래스를 만든다. - RequestForReservationInfo 예약 정보를 요청하는 클래스를 만든다. 여기서 tid값과 pg_token값을 받아온다. - FeignService - 42~55번 코드 : admin 키값과 ReadyToPayInfo에 들어가는 값들을 params로전달해줘 결제가 성공하면 QR코드를 생성하는 URL을 리턴해주는 코드이다. -..

WorkHard/Project 2023.02.07

[Project] Java Spring 카카오페이(1)

카카오페이 구현하면서 진짜 엄청 많은 오류를 만났다....정리를 더 잘해놓을껄....후회된다.. 진짜 너무너무 매일 새벽까지 구현하는데 잘안되서 블로그에 신경을 하나도 못써버렸다.... 지금이라도 더 까먹기전에 써보자! 그리고 내생각엔 처음 구현해보는 입장에서 카카오디벨로퍼만 보고는 구현하기 힘들꺼 같다는 생각을 엄청 많이했다. 물론 필요하지만.. 1. 카카오페이 API 이해하기 결제 프로세스 백엔드 서버에서 결제 요청 상세 정보를 캍카오페이 서버에 전달해준다. 카카오페이 서버에서 정보를 받아 사용자 인증한다. 백엔드 서버에서 사용자 인증 후 결제 승인 상세 정보를 카카오페이 서버에 전달 카카오페이 서버에서 최종 결제 처리 완료 2. 카카오페이 결제 구현과정 결제 과정 3가지 결제 요청 준비 결제 요청 ..

WorkHard/Project 2023.02.03