Tech Interview/Language

기술 면접 스터디
Tech Interview/Language

[Language] 목차

순번 유형 01 Java 프로그래밍 02 Java SE와 Java EE 애플리케이션 차이 03 Java와 C/C++의 차이점 04 Java 언어의 장단점 05 자바 가상 머신 06 Java 컴파일 과정 07 가비지 컬렉션 08 객체 지향 프로그래밍 09 Java의 데이터 타입 10 값에 의한 호출 & 참조에 의한 호출 11 ==와 equals() 12 클래스 & 객체 & 인스턴스 13 문자열 클래스 14 Java 접근 제어자 15 non-static vs static 16 final/finally/finalize 17 인터페이스 vs 추상 클래스 18 오버라이딩 vs 오버로딩 19 컴포지션 20 Error & Exception 21 오브젝트 클래스 22 Wrapper 클래스 23 캐스팅 24 제네릭 25..

Tech Interview/Language

[Language] 인증 및 권한 부여

✔️ 인증 및 권한 부여 인증 및 권한 부여 스프링 프레임워크에서는 인증 및 권한 부여로 리소스 사용을 컨트롤 할 수 있는 Spring Security를 제공함 이를 이용하면 보안 처리를 자체적으로 구현하지 않아도 쉽게 필요한 기능을 구현할 수 있음 Spring Security는 스프링의 Dispatcher Servlet 앞단에 Filter 형태로 위치하여 Dispatcher Servlet으로 넘어가기 전에 이 Filter가 요청을 가로채서 클라이언트의 리소스 접근 권한을 확인하고 없는 경우에는 인증 요청 화면을 자동 라다이렉트하게 됨 API 인증 및 권한 부여를 위한 작업 회원 가입, 로그인 API 구현 리소스에 접근 가능한 ROLE_USER 권한을 가입 회원에게 부여 Spring Security 설정..

Tech Interview/Language

[Language] Dirty Checking

✔️ Dirty Checking Dirty Checking이란? 엔티티에서 변경이 일어난 것(Dirty)을 감지한 뒤, 검사(Checking)를 한 후 데이터베이스에 반영시켜줌 JPA에서는 트랜잭션이 끝나는 시점에 변화가 있던 모든 엔티티의 객체를 데이터베이스로 알아서 반영을 시켜줌 즉, 트랜잭션의 마지막 시점에서 다른 점을 발견했을 때 데이터베이스로 update 쿼리를 날려줌 JPA에서 엔티티를 조회 조회된 상태의 엔티티에 대한 스냅샷 생성 트랜잭션 커밋 후 해당 스냅샷과 현재 엔티티 상태의 다른 점을 체크 다른 점들을 update 쿼리로 데이터베이스에 전달 이때 더티 체킁을 검사하는 대상은 영속성 컨텍스트가 관리하는 엔티티로만 대상을 하므로 준영속, 비영속 엔티티는 값을 변경할지라도 데이터베이스에 반..

Tech Interview/Language

[Language] JPA

✔️ JPA JPA란? 자바 ORM 기술에 대한 표준 명세로, 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 ORM 프레임워크는 자바 객체와 관계형 DB를 매핑해 객체가 DB 테이블이 되도록 만들어주므로 SQL을 작성하지 않아도 직관적인 메소드로 데이터를 조작할 수 있음 자바가 제공하는 API로 개발자가 직접 SQL을 작성하지 않고 DB를 저장하고 관리할 수 있음 JPA는 애플리케이션과 JDBC 사이에서 동작하며, 개발자가 JPA를 활용했을 때 JDBC API를 통해 SQL을 호출하여 데이터베이스를 호출하는 전개가 이루어지게 됨 JPA 특징 객체 중심 개발 가능 SQL 중심 개발이 이루어진다면 하나의 테이블을 생성해야 할 때 CRUD 작업이 반복해서 이루어져야 하며 추후에 ..

Tech Interview/Language

[Language] Test Code

✔️ Test Code Test Code란? 테스트 코드 작성을 통해 개발 단계 초기에 문제를 발견하고 나중에 코드를 리팩토링하거나 라이브러리 업그레이드 시 기존 기능이 잘 동작하는지 확인할 수 있음 또한 기능에 대한 불확실성이 감소하게 됨 개발 코드 이외에 테스트 코드를 작성하는 일은 개발 시간이 늘어날 것이라고 생각할 수 있으나 코드에 오류가 있는지 검증할 때 테스트 코드를 작성하지 않고 서버를 켜서 진행한다면 더 시간 소모가 크게 됨 또한 눈으로 검증하는 것도 한계가 있으므로 자동으로 검증해주는 테스트 코드를 사용하도록 함 따라서 테스트 코드는 개발하는데 있어서 필수적인 부분이며 반드시 활용해야 하며 견고한 프로젝트를 만들기 위해서는 기능별 단위 테스트를 진행하는 습관을 길러야 함 @RunWith(..

Tech Interview/Language

[Language] Filter와 Interceptor 차이

✔️ Filter와 Interceptor 차이 Filter와 Interceptor 애플리케이션에서 자주 사용되는 기능을 분리하여 관리할 수 있도록 스프링이 제공하는 기능 서버 실행 시 Dispatcher Servlet이 올라오는 동안 init 후 Filter의 doFilter 실행 Dispatcher Servlet을 지나쳐 Interceptor의 preHandler 실행 컨트롤러를 거쳐 내부 로직을 수행한 후, Interceptor의 postHandler 실행 Filter의 doFilter 실행 Dispatcher Servlet 종료 시 destroy Filter란? Dispatcher Servlet 이전에 수행되고, 응답 처리에 대해서도 변경 및 조작 수행이 가능함 WAS(Web Application ..

Tech Interview/Language

[Language] Spring JDBC를 이용한 데이터 접근

✔️ Spring JDBC를 이용한 데이터 접근 JDBC(Java Database Connectivity)란? DB에 접근할 수 있도록 Java에서 제공하는 API 모든 Java의 Data Access 기술의 근간 JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공함 하지만 쿼리를 실행하기 전과 후에 많은 코드를 작성해야 하며 예외 처리 코드를 수행해야 함 또한 트랜잭션도 처리해야 하므로 이러한 모든 코드를 반복하는 것은 시간 낭비가 됨 JDBC Template란? Spring JDBC 접근 방법 중 하나로, Plan JDBC API를 사용하지만 위의 문제점을 제거한 형태의 스프링에서 제공하는 클래스 쿼리를 실행하기 전과 후, 예외 처리 코드, 트랜잭션 처리를 모두 대신 해주게 됨 Co..

Tech Interview/Language

[Language] DAO vs DTO

✔️ DAO vs DTO DAO(Data Access Object)란? DB의 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 객체 DB에 접근을 하기 위한 로직과 비즈니스 로직을 분리하기 위해서 사용 DTO(Data Transfer Object)란? 계층(Controller, View, Business, Persistent Layer) 간 데이터 교환을 위한 자바빈즈 일반적인 DTO는 로직을 갖고 있지 않는 순수한 데이터 객체이며, 속성과 그 속성에 접근하기 위한 getter, setter 메소드만을 가진 클래스 read only 속성을 가지는 VO(Value Object)라고도 불림

김깅긍
'Tech Interview/Language' 카테고리의 글 목록