CS 9

CS

DB NoSQL, RDB 차이점과 특징 RDB [회원 Table] 회원 번호 (Primary Key) 회원 이름 휴대폰 번호 1111111 김희진 010-xxxx-xxxx 2222222 김또깡 010-yyyy-yyyy [주문 Table] 주문 번호 (Primary Key) 주문 회원 번호 (foreign key) 주문 상품 20200207xxxxxxxx 1111111 컴퓨터 20200207yyyyyyy 2222222 키보드 20200207zzzzzzz 2222222 마우스 테이블은 row(record, tuple)과 column(field, item)으로 이루어진 기본 데이터 저장 단위 확장에 용이 ER모델에 따라 데이터 베이스가 생성됨 ER(Entity Relationship) : Entity(개체),..

CS 2022.09.14

면접 질문

1. 프레임워크와 라이브러리의 차이 프레임워크 앱/서버 등의 구동, 메모리 관리, 이벤트 루프 등의 공통된 부분은 프레임워크가 관리하며, 사용자는 프레임워크가 정해준 방식대로 클래서, 메서드들을 구현하면 되며 사용자는 원하는 기능 구현에 집중하여 개발할 수 있도록 필수적인 코드나 기능들을 위한 뼈대를 제공한다. 라이브러리 특정 기능들을 모아둔 코드 차이 점 라이브러리의 경우 사용자는 코드의 흐름을 직접제어 해야 하며 프레임워크는 애플리케이션의 코드가 프레임 워크의 제어를 받게 된다. 2. Bean LifeCycle 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸 전 콜백 -> 스프링 종료 https://devlog-wjdrbs96.tistory.com..

CS 2022.09.07

면접 질문

1. @Transactional 어노테이션에 readOnly 속성의 사용 이유 영속성 컨텍스트를 관리 하지 않고 읽기 참조만 하기 때문에 Entity의 관리가 들어가지 않으며 캐시가 날라가지 않기 때문에 변경 감지를 위한 스냅샷을 저장하지 않기에 성능이 향상된다. 2. JPA Entity Class에서 @Setter를 지양하는 이유는? (Entity에서 Setter 함수를 사용하지 않는 이유?) 객체의 일관성을 보장할 수 없고 그 의도를 파악하기 힘들기 때문 그렇기에 메서드를 생성해주거나 객체 생성시 값 세팅에서 빌더 패턴을 사용하면 좋다. 3. OOP(객체지향 프로그래밍) 의 특징을 설명해 보세요. 캡슐화: 필드와 메소드를 클래스로 묶는 데이터 캡슐화 외부에서 객체의 상태를 변경하는것을 막기위한 은닉화..

CS 2022.09.06

면접 질문

1. XSS, CSRF에 대해 알아보기 사이트 간 스크립팅(XSS)을 이용한 공격이 사용자가 특정 웹사이트를 신용하는 점을 노린 것이라면, 사이트간 요청 위조는 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린 것이다. XSS공격과 CSRF는 사용자(피해자)의 브라우저를 목표로 하는 비슷한 공격이지만 XSS는 사이트변조나 백도어를 통해 클라이언트에 대한 악성공격을 하고, 인증된 세션이 없어도 공격을 할 수 있으며, 자바 스크립트를 실행 시키는 공격. CSRF는 요청을 위조하여 사용자의 권한을 이용해 서버에 대한 악성공격을 하고, 인증된 세션을 악용하며, 특정한 행동을 실행 시키는 공격이라는 점에서 두가지 공격의 차이가 있다. https://lucete1230-cyberpolice.tistory..

CS 2022.09.05

면접 질문

개발자 테스트 코드 작성 시 장/단점과 테스트 종류 별 (단위 테스트, 통합 테스트, E2E 테스트) 로 특징은? 테스트 코드 작성시 내가 의도한 대로 프로그래밍이 작동하는 지를 알 수 있으며 시간이 들어간다는 단점이 있다. 단위 테스트 : 클래스 또는 메소드 수준으로 정해지며 통합 테스트 : 단위 테스트 보다 더 큰 동작을 달성하기 위해 여러 모듈들을 모아 의도대로 작동하는 지 확인한다. 개발자가 변경할 수 없는 외부 라이브러리 같은 것까지 모두 묶어 검증시 사용하며 DB에 접근하거나 전체 코드와 다양한 환경이 제대로 작동하는지 확인 버그 찾기에 좋지만 유지보수 어려움 E2E테스트 : 끝에서 끝까지 검증하는 것으로 프로그램이 완성한 후 그 프로그램 자체를 검증하는 것 스프링 시큐리티를 사용해 회원관리하..

CS 2022.09.02

ORM, JPA, Spring Data JPA

ORM ORM이란 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다. 쉽게 말해서 예전에는 계발자가 직접 쿼리문을 작성하고 DB에 맞는 형식으로 값을 넣어주었다면 지금에서는 JAVA를 사용할 시에 JAVA의 ORM표준이 JPA를 활용하여 객체에 맞게 짜여진 데이터를 DB에 넣게 해준며 SQL의 불일치를 해결한다. JPA JAVA ORM표준으로서 인터페이스의 모음이다. 기술 명세이며 특정 기능을 하는 라이브러리가 아니다.JPA를 구현한 것은 Hibernate이다. 하지만 JPA를 사용하기 위해서의 한 방법일 뿐 꼭 Hibernate를 고집할 필요는 없다. Spring Data Jpa Spring framework에서 JPA를 편리하게 사용할 수 있도록 지원하는 포르젝트로써 CRU..

CS 2022.09.01

Controller, Service, Repository

큰 틀로 본다면 아래와 같은 의미로 이해 하면 된다. 컨트롤러 : @Controller (프레젠테이션 레이어, 웹 요청과 응답을 처리함) 로직 처리 : @Service (서비스 레이어, 내부에서 자바 로직을 처리함) 외부I/O 처리 : @Repository (퍼시스턴스 레이어, DB나 파일같은 외부 I/O 작업을 처리함) https://codevang.tistory.com/258 @Repository, @Service 어노테이션 - Develop OS : Windows10 Ent, 64bit - WEB/WAS Server : Tomcat v9.0 - DBMS : MySQL 5.7.29 for Linux (Docker) - Language : JAVA 1.8 (JDK 1.8) - Framwork : Spr..

CS 2022.09.01

REST API / PUT POST의 차이/ PUT PATCH의 차이

PUT : which is used to apply partial modifications to a resource PATCH : method requests that the state of the target resource be created or replaced with the state defined by the representation enclosed in the request message payload PUT의 경우 일부분의 값만을 보낼 경우 나머지 값을 default값으로 변경되며 PATCH는 변경된 값만을 반영시키며 나머지 값 같은 경우 유지되는것을 알 수 있다. PUT 방식의 경우 아래와 같이 USER의 나이를 15살로 변경시 name에 대한 입력값이 없으므로 null값이 들어가게 된..

CS 2022.09.01

면접 질문

1. Session과 Cookie Session과 Cookie 사용 이유 - 현재 우리가 인터넷에서 사용하고 있는 HTTP프로토콜은 연결 지향적인 성격을 버렸기 때문에 새로운 페이지를 요청할 때마다 새로운 접속이 이루어지며 이전 페이지와 현재 페이지 간의 관계가 지속되지 않는다. 이에 따라 HTTP프로토콜을 이용하게 되는 웹사이트에서는 웹페이지에 특정방문자가머무르고있는동안에그방문자의상태를 지속시키기 위해 쿠키와 세션을 이용한다. Session - 특정 웹사이트에서 사용자가 머무르는 기간 또는 한 명의 사용자의 한번의 방문을 의미한다. - Session에 관련된 데이터는 Server에 저장된다. - 웹 브라우저의 캐시에 저장되어 브라우저가 닫히거나 서버에서 삭제시 사라진다. - Cookie에 비해 보안성이..

CS 2022.08.31