Back-end

기본 자료형은 크게 기본 타입(primitive type)과 참조타입(reference type)으로 나누어집니다. 대표적으로 자주사용하는 기본타입은 int, char float 등이 있고 참조타입은 class, interface 등이 있습니다. 그런데 프로그래밍을 하다보면 기본타입의 데이터인를 객체로 표현해야 하는 경우가 많습니다. 이럴 때에 기본 자료타입을 다루기 위해서 사용하는 클래스가 래퍼 클래스입니다. 자바는 모든 기본타입 값을 갖는 객체를 생성할 수 있습니다. 자주 사용하는 래퍼클래스는 Integer와 Long이 있습니다. 제가 겪은 문제들은 API를 설계할 시에 기본 자료형으로 데이터를 주고 받으려고 하니까 계속 오류가 생겼습니다. 바로 객체로 데이터를 받아야 했기 때문입니다. 결국 int의..
자바 컬렉션 프레임워크란 Java에서 데이터를 저장하는 자료구조들을 한 곳에 모아 편리하게 관리하고 사용하기 위해 제공하는 것입니다. (ex_ List, Set, Map) List 인터페이스와 Set 인터페이스를 설명하기 이전에 알고 넘어가야 할 점은, 컬렉션은 기본 데이터형이 아닌, 참조 데이터 형만 저장이 가능하다는 것입니다. 따라서 Collection에서의 데이터는 Object 타입의 객체로서 저장이 되는 것인데, 그렇다면 여기서 기본 데이터형은 어떻게 저장하고 관리할 수 있을까? 기본 데이터 형은 Wrapper 클래스를 이용하여 Boxing 시켜주거나, (Integer num = new Integer(5); 와 같은 코드로 구현 가능합니다. 📌List 동일한 데이터의 중복을 허용한다 데이터 저장 ..
객체지향의 5원칙(SOLID) 단일 책임 원칙(Single responsibility principle) : SRP 개방 폐쇄 원칙(Open/closed principle) : OCP 리스코프 치환 원칙(Liskov substitution principle) : LSP 인터페이스 분리 원칙(Interface segregation principle) : ISP 의존관계 역전 원칙(Dependency inversion principle) : DIP 📌단일 책임의 원칙 : SRP (Single Responsibility Principle) 모든 클래스는 각각 하나의 기능만 가진다는 의미입니다. 해당 클래스가 제공하는 모든 서비스는 단 하나의 책임을 수행하는데 집중 되어야 한다는 원칙입니다. SRP 원칙을 적용..
DI(Dependency Injection) DI(Dependency Injection) 이란 스프링이 다른 프레임워크와 차별화 되어 제공하는 의존 관계 주입 기능이다. 객체를 직접 생성해주는 것이 아닌 외부에서 생성을 한 후에 객체를 주입 시켜주는 방식이다. DI(의존성 주입)를 통해서 모듈 간의 결합도가 낮아지고 유연성이 높아진다. 위의 그림에서 보여주는 [방법1]은 A객체가 B와 C 객체를 new 생성자를 통하여 직접 생성하는 방법이고 [방법2]는 외부에서 생성한 객체를 A객체에 주입하는 방식이다 위의 [방법2]가 의존성 주입의 예시이다. A 객체 에서 B,C 객체 를 사용(의존) 할때 A객체 에서 직접 생성하는 것이 아니라 외부(IOC컨테이너 에서 생성된 B,C 객체 를 조립(주입) 시켜 sett..
Spring Bean 이란 Spring 에서 POJO(plain, old java object)를 "Beans"라고 부른다. Beans는 애플리케이션의 핵심을 이루는 객체이며, Spring IoC(Inversion of Control) 컨테이너에 의해 인스턴스화, 관리, 생성된다. Beans는 우리가 컨테이너에 공급하는 설정 메타 데이터(XML 파일)에 의해 생성된다. 컨테이너는 이 메타 데이터를 통해 Bean의 생성, Bean Life Cycle, Bean Dependency(종속성) 등을 알 수 있다. 애플리케이션의 객체가 지정되면, 해당 객체는 getBean() 메서드를 통해 가져올 수 있다. Spring Bean 정의 일반적으로 XML 파일에 정의한다. 🔻주요속성 class(필수) : 정규화된 자..
Lombok 정리 개념 Java에서 자주 반복되는 코드(Getter, Setter, 생성자 등등)들을 어노테이션을 통해 자동으로 생성해주는 라이브러리 Lombok 어노테이션은 한마디로 말해서, 지저분해지는 코드들은 전부 간편하게 자동 생성해준다. 기존에 썼던 것들은 간편화 해주는 것이기 때문에 lombok을 사용해도 어떻게 사용되는지 알아야 한다. @Getter, @Setter ⚠️ 사용하기 전 코드 ---------------------------------------------------- public class Post { private String title; private String content; private String author; public void setTitle(String ti..
JPA(Java Persistence API)는 무엇인지 알아보자. JPA는 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다. 다시말하면, 실제적으로 구현이 된게 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크이다. (JPA를 구현하는 대표적인 오픈소스는 Hibernate이다.) 우선 JPA를 알기전에 ORM에 대해서 개념을 잡고 가야한다. ORM 우리가 일반적으로 알고 있는 애플리케이션 Class와 RDB(Relational DataBase)의 테이블을 매핑한다는 뜻이다. 기술적으로는 애플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것이다. (여기서 영속화란, 지속시킨다는 개념이다. 만약 더 알고싶다면 여기를 ..
스프링에서는 인증, 권한 등 보안에 관한 기능을 제공하는 프레임워크인 스프링 시큐리티(Spring Security) 가 있다. 우선 스프링 시큐리티(Spring Security)를 알기 전에 인증과 권한에 대해서 알아보려한다. 📌 인증(Authentication) 인증(Authentication)이란 보호된 리소스에 접근하는 대상, 즉 사용자에게 적절한 접근 권한이 있는지 확인하는 일련의 과정이다. 이 때 보호된 리소스에 접근하는 대상(사용자)을 접근 주체(Principal)이라고 한다. 📌 권한(Authorization) 권한(Authorization)이란 인증절차가 끝난 접근 주체(Principal)가 보호된 리소스에 접근 가능한지를 결정하는 것을 의미한다. 이 때 권한을 부여하는 작업을 인가(Aut..
recordYoo
'Back-end' 카테고리의 글 목록 (2 Page)