분류 전체보기 (24) 썸네일형 리스트형 삼항 연산자 삼항 연산자란?왜 쓰나요? if-else문 코드를 단 한줄로 줄일 수 있다. → 코드 가독성도 올라가고 이해하기도 쉽겠죠 ?기본 공식은 다음과 같다. 조건식 ? 참일 때의 결과 : 거짓일 때의 결과 조건식 참 참인경우 거짓 거짓일 때return value == null ? "false" : (String) value; // value는 Object 타입의 변위의 예시를 들어보자면조건식: value == null?(참) : 만약 그렇다면, True참인 경우 → 참인 경우 문자열 “false”를 리턴해라.:(거짓) : 만약 거짓이라면, False거짓인 경우 → object 타입인 value를 String으로 타입캐스팅하여 반환하라. 인증과 인가란? 인증어떠한 개체(사용자 혹은 장치)의 신원을 확인하는 과정으로, 이 개체는 어떤 인증 요소를 증거로 제시함으로서 본인을 인증한다. 예시를 든다면 비행기 티켓을 구매하려고 하는 사용자가 있을 때, 비행기를 탈 수 있는 자격이 되는지를 증명하기 위해서 사용자는 여권을 제시해야 할 수 있다. 즉 인증된 사용자인지를 확인하기 위한 과정인 것이다. 예시로 들자면, 온라인이라면 SNS나 쇼핑몰 등 홈페이지에 접속하는 방법으로 아이디/패스워드를 통한 인증이나, 등록된 휴대폰으로 전달되는 메시지 코드를 입력하는 행위나 인증 key 방식의 로그인 등이 모두 인증 과정의 한 예시라고 할 수 있고, 이 인증 요소에는 여러 개가 있을 수 있다.인가인가는 어떠한 개체가 어떤 리소스에 접근할 수 있는지, 어떤 동작을 수행할 수 .. Flush란? 플러시플러시(Flush)란, 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영(동기화)하는 작업이다.em.persist 등으로 쓰기 지연 SQL 저장소에 쌓아두었던 SQL 쿼리들을 실제 데이터베이스로 전송하는 것이다.플러시가 발생하면 내부적으로 다음과 같은 일이 순차적으로 일어난다.변경 감지(Dirty Checking) 수행영속성 컨텍스트에 의해 관리되고 있는 모든 엔티티에 대하여 1차 캐시의 현재 상태와 스냅샷 원본을 비교하여 변경된 부분을 감지한다.수정 엔티티에 대한 SQL Query 생성변경 감지로 통해서 수정 사항이 있는 경우 SQL 쿼리를 생성하여 쓰기 지연 SQL 저장소에 추가한다.쓰기 지연 SQL 저장소의 쿼리를 DB로 전송실제로 저장소에 쌓여 있는 모든 SQL 쿼리를 데이터베이스로 전송하여.. [Spring] 스프링 컨테이너에 대하여 알아보자. IOC 컨테이너? DI 컨테이너란?AppConfig처럼 객체를 생성, 관리, 의존관계를 연결해 주는 것을 IoC 또는 DI 컨테이너라고 한다.IOC 컨테이너라고도 불리기도 하는데, 최근에는 의존관계 주입에 초점을 맞추어서 주로 DI 컨테이너라고 한다. 또는 어셈블러나 오브젝트 팩토리라고도 부른다.스프링 컨테이너의 생성 과정//스프링 컨테이너 생성ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);ApplicationContext를 스프링 컨테이너라고 하며, ApplicationContext는 인터페이스이다.ApplicationContext의 구현체ClassPathXmlApplicati.. [Spring] DI란? DI(Dependency Injection), 의존관계 주입의존관계는 정적인 클래스 의존 관계와, 실행 시점에서 결정되는 동적인 객체(인스턴스) 두 가지를 분리하여 생각해야 한다.클래스 의존 관계정적인 의존관계는 애플리케이션을 실행하지 않고 클래스가 사용하는 import 코드만 보아도 판단이 가능하다. 위의 클래스 다이어그램을 살펴보면, OrderService의 구현 객체인 OrderServiceImpl은 인터페이스 MemberRepository와 DiscountPolicy를 의존한다는 것을 알 수 있다.하지만 이런 클래스 의존관계만으로는 실제 어떤 객체가 OrderServiceImpl에 주입되는지 알 수 없다.객체 의존 관계동적인 객체(인스턴스) 의존 관계: 애플리케이션 실행 시점에 실제 생성된 객체 .. [Spring] IOC란? IOC, 제어의 역전이란 무엇인가.과거에는 클라이언트 구현 객체가 스스로 필요한 구현 객체를 생성해서 연결하고 실행하는, 즉 개발자가 직접 객체 간의 의존관계를 직접 설정하고, new 키워드를 통해 객체를 생성하고 연결했다. 이러한 구조는 구현체에 강하게 결합되어 DIP를 위반한다. IoC란, 객체의 생성과 그 객체에 대한 의존성 관리(주입)에 대한 제어권을 개발자가 아니라, 프레임워크(예: 스프링 컨테이너)가 가져가는 구조를 말한다. 하지만 IoC 컨테이너(DI 컨테이너)를 사용하면 개발자는 단순히 자신의 비즈니스 로직에만 집중하고, 객체 생성이나 의존성 주입 등의 책임은 AppConfig 같은 설정 파일이나 애노테이션 기반 설정에 위임한다.이렇게 제어의 흐름이 개발자 → 외부(프레임워크)로 넘어가는 .. [JAVA] 인터페이스란? 🔗 인터페이스(Interface)인터페이스는 **다중 구현(다중 상속)**을 지원한다.인터페이스는 class 대신 interface 키워드로 선언한다.인터페이스 내에 메서드 선언은 순수 추상 클래스처럼 추상 메서드만 선언해야 하는데, public abstract를 생략해도 된다 (권장).인터페이스를 상속받을 때는 extends 대신 implements(구현) 키워드를 사용해야 한다. 그래서 상속이라고 안 하고 구현이라고 표현한다.클래스, 추상 클래스, 인터페이스는 프로그램 코드나 메모리 구조상 모두 똑같다.➡️ 상속 vs. 구현부모 클래스의 기능을 자식 클래스가 상속받을 때, 클래스는 상속받는다고 표현하지만, 부모 인터페이스의 기능을 자식이 상속받을 때는 인터페이스를 구현한다고 표현한다.왜냐하면, 상속.. [JAVA] 추상 클래스와 메서드 🎭 추상 클래스(Abstract Class)위에서 언급한 Animal과 같이, 부모 클래스는 제공하지만 실제 생성되면 안 되는 클래스를 추상 클래스라고 한다.추상 클래스는 이름 그대로 추상적 개념을 제공하는 클래스로, 실체인 인스턴스가 존재하지 않는다. 즉, 객체 생성이 불가능하다. 메모리상에 올릴 수 없다.주로 상속 목적으로 사용되며, 부모 클래스 역할을 담당한다.abstract class AbstractClass { // ...}클래스를 선언할 때 abstract 키워드를 붙여주면 된다. 기존 클래스와 같지만 new로 인스턴스를 생성하지 못하는 제약이 추가된다. 이렇게 아까 전의 부모 타입 객체를 직접 인스턴스 생성하는 문제점을 해결할 수 있다.👻 추상 메서드(Abstract Method)부.. 이전 1 2 3 다음