면접준비 14

트랜잭션의 3가지 특징 (원자성, 일관성, 독립성)

원자성 (All or Nothing)트랜잭션이 데이터베이스에 모두 반영되던가, 아니면 전혀 반영되지 않아야 한다는 것이다.트랜잭션은 사람이 설계한논리적인 작업 단위로서, 일처리는 작업단위 별로 이루어 져야 사람이 다루는데 무리가 없다.만약 트랜잭션 단위로 데이터가 처리되지 않는다면, 설계한 사람은 데이터 처리 시스템을 이해하기 힘들 뿐만 아니라, 오작동 했을시 원인을 찾기가 매우 힘들어질것이다.일관성 (Keeps Data Correct)트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다는 것이다.트랜잭션이 진행되는 동안에 데이터베이스가 변경 되더라도 업데이트된 데이터베이스로 트랜잭션이 진행되는것이 아니라,처음에 트랜잭션을 진행 하기 위해 참조한 데이터베이스로 진행된다.이렇게 함으로써 각 사용자는 일관..

면접준비 2024.09.28

객체지향 프로그래밍의 네가지 특징 : 추상화 상속 다형성 캡슐화

객체지향 프로그래밍 (Object-Oriented Programming, OOP)실제 사물처럼 객체의 특징과 행동을 필드와 메소드로 표현하는 방법코드의 재사용유연성과 확장성유지보수대규모 프로젝트 관리추상화 (Abstraction)객체의 공통적인 특징과 행동을 추출하여 정의함공통된 속성을 추상화 해두면 고유 기능 개발에 대한 집중이 가능함경적메소드 -> 뛰뛰와 빵빵으로 각각 구현상속 (Inheritance)상속받은 부모클래스의 특징과 행동을 모두 사용할 수 있듬엑셀을 밟으면 전진을 한다 -> 모든 회사의 자동차가 동일함다형성 (Polymorphism)상황에 따라 다양한 형태를 가질 수 있는 성질오버로딩과 오버라이딩캡슐화 (Encapsulation)외부로부터 클래스에 정의된 필드와 메소드를 보호하여 각 객체..

면접준비 2024.09.20

AOP 특강

AOP횡단 관심사 분리핵심기능 시스템의 주요 목적 부가기능 주요 목적이 아닌 기능 횡단 관심사 부가 기능이 여러곳에서 반복적으로 적용되는 상황 ex.Transectional AOP는 핵심기능과 횡단관심사(부가기능)를 분리해서 관리하는 것 어드바이스 실제로 실행되는 횡단관심사 @Around, Before, After, AfterThrowing, AfterReturning 포인트컷 어드바이스를 적용할 구체적인 범위를 선택하는 규칙 @execution, annotiations, within, this, target, args 타겟 어드바이스가 적용될 객체 (포인트컷으로 지정) excution(* com.example.service.CourseService.*(..)) 조인포인트 어드바이스가 적용되는 실행지점 ..

면접준비 2024.09.11

예외처리와 공통응답

체크예외(Exception)높은 복구 가능성RuntimeException을 제외한 Exception 클래스 상속컴파일 시점에 체크함명시적 처리 필요예외처리(try-catch) 또는 책임전가([클래스명] throws) 필요IllegalArgumentException, NoSuchElementException언체크예외(RuntimeException)낮은 복구 가능성부모가 RuntimeException일 경우컴파일시점에 체크하지 않음명시적 처리 불필요예외처리(try-catch) 또는 책임전가([클래스명] throws) 불필요IOException, NoSuchAttributeException ! 비즈니스 계층에서 복구 가능성으로 판단 !

면접준비 2024.09.09

면접 피드백, 추가 공부할 것 정리

객체지향 프로그래밍네가지 특징 - 캡슐화- 추상화- 상속- 다형성다섯가지 원칙 (SOLID)- 단일 책임 원칙- 개방 폐쇄 원칙- 리스코프 치환 원칙- 인터페이스 분리 원칙- 의존관계 역전 원칙  RESTful한 API를 설계하는 장점URL로 해당하는 자원을 표현하고메소드로는 행동을 표현한다협업, 클라이언트의 입장에서 규격이 정해져있어 용이하다+ 단점은?+ 어떤 메소드로 이뤄져 있는지 Setter 사용 지양 이유필드가 많아지는 경우 객체의 상태 변화를 추적하기 어려움불변성 RDBMS, NoSQL+차이점 정리+장단점 정리 이번 과정 목표 한번씩 정리할것Java 코드가 실행되는 과정을 설명할 수 있다JVM 구조를 정리할 수 있다코드와 메모리를 연관 지어 설명할 수 있다스트림의 이해와 스트림의 사용법 익히기O..

면접준비 2024.08.30

면접 준비

RESTful한 API를 설계하는 장점은?- HTTP Method를 사용한다(GET, PUT, POST, DELETE 등)- HTTP 프로토콜의 표준을 최대한 활용하기 때문에 HTTP의 추가적인 장점을 함께 가져갈 수 있다- HTTP에서는 Stateless 즉, server가 client의 상태를 유지하고 있지 않기 때문에 응답과 요청이 독립적이고, 서버의 확장성이 높다- client의 요청에 세션, 쿠키 등의 방법으로 상태를 유지한다 적절한 관심사 분리가 필요한 이유는?- 프로그램의 유연성을 높일 수 있다 Setter를 무분별하게 사용하면 안되는 이유는?- DTO 같은 경우 전송 객체이기 때문에 데이터가 변경되지 않는다는 것이 보장되어야 한다, 이러한 경우에 Setter의 사용은 굉장히 위험하다  No..

면접준비 2024.08.26

Java 메모리 영역

JVM 메모리 공간 (Runtime Data Area) MethodJVM이 동작해서 클래스가 로딩될 때 생성Static 영역이라고도 함프로그램이 실행중이라면 어디서든 언제든 접근 가능Class와 Interface에 대한 runtime 상수 풀, 멤버 변수, Static 변수, final, Constructor, MethodStack원시 자료형, 지역변수, 매개변수LIFOThread별로 생성됨Method가 호출 될 때 메모리에 할당, 종료시 삭제Heap참조 자료형, 인스턴스, 배열메모리 정리는 가비지 컬렉터에 의해 이뤄짐

면접준비 2024.08.21

오버로딩 (Overloading), 오버라이딩 (Overriding)

오버로딩 (Overloading) : 과적하다 메소드명은 동일하지만 매개변수의 갯수나 타입이 다름public void eat() { System.out.println("냠냠");}void eat(String str) { System.out.println(str + "냠냠");}String eat(String str, int num) { System.out.println(num); System.out.println(str + "냠냠"); return "배불러";}void eat(int num) { System.out.println(num);} 오버라이딩 (Overriding) : 재정의부모 클래스로부터 상속받은 메소드를 자식 클래스에서 재정의메소드명, 매개변수, 반환 값이 모두 같음

면접준비 2024.08.21