본문 바로가기

프레임워크

(35)
기존 알고리즘 Log로 보던 데이터를 @Test사용해서 Assert로 다 바꿔보자. 기존 public void main() { String[] id_list = {"muzi", "frodo", "apeach", "neo"}; String[] report = {"muzi frodo", "apeach frodo", "frodo neo", "muzi neo", "apeach muzi"}; // String[] id_list = {"con", "ryan"}; // String[] report = {"ryan con", "ryan con", "ryan con", "ryan con"}; solution(id_list, report, 2); } public int[] solution(String[] id_list, String[] report, int k) { // [신고당한사람, 신고한사람List..
MediaType.APPLICATION_JSON_UTF8가 deprecated Json-UTF-8이 deprecated가 되었다. 해결책 APPLCATION_JSON으로 변경 후 application.properties에 해당 서블릿 인코딩을 추가해주면 된다.
Spring boot @RunWith가 어디에 ? 인프런에 스프링 부트 강의를 만들었을 당시(2018년 7월) 스프링 부트 2,0이 막 출시된 지 얼마지나지 않았을 시점이었다. 강좌를 공개하고 반년 정도 흘렀을까.. 스프링 부트 2.1이 출시되었고 스프링 부트의 철학이 그러하듯 하위호환성 보다는 편의성과 기술 흐름을 빠르게 쫓는 변화가 생겼다. 여러 변경 사항이 있지만 그 중에서도 단연 눈에 띄는 변화 중 하나는 JUnit의 버전을 4쩜대(4.x)에서 5.2로 변경한 것이다. 보통 여러 라이브러리나 프레임워크가 이렇게 메이저 버전이 바뀌는 경우 하위호환성이 깨지거나 구조상의 변경이 생기기 마련인데 JUnit도 예외는 아니었고 상당 부분 의미있는 변경이 있었다. 특히 JUnit을 확장하는 방법에도 변화가 있었다. (자세한 건 '더 자바,..
restApi란 ? REST API(RESTful API, 레스트풀 API)란 REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스를 뜻합니다. REST는 Representational State Transfer의 줄임말입니다. Rest API의 개념 및 서버, 구현 등을 이 페이지에서 설명합니다. API 또는 애플리케이션 프로그래밍 인터페이스(Application Programming Interface)는 애플리케이션 소프트웨어를 구축하고 통합하는 정의 및 프로토콜 세트입니다. 때때로 API는 정보 제공자와 정보 사용자 간의 계약으로 지칭되며 소비자에게 필요한 콘텐츠(호출)와 생산자에게 필요한 콘텐츠(응답)를 구성합니다. 예를 들어 날씨 서비스용 API에서는 사용자는 우편번호를 제공하고, 생산자는 두..
DTO란 ? spring을 사용하다보면 DTO, DAO, VO에 대한 용어에 대하여 많이 접하게 됩니다. 해당 개념에 대하여 간단하게 정리해보았습니다. DAO DAO(Data Access Object) 는 데이터베이스의 data에 접근하기 위한 객체입니다. DataBase에 접근 하기 위한 로직 & 비지니스 로직을 분리하기 위해 사용합니다. DTO DTO(Data Transfer Object) 는 계층 간 데이터 교환을 하기 위해 사용하는 객체로, DTO는 로직을 가지지 않는 순수한 데이터 객체(getter & setter 만 가진 클래스)입니다. 유저가 입력한 데이터를 DB에 넣는 과정을 보겠습니다. 유저가 자신의 브라우저에서 데이터를 입력하여 form에 있는 데이터를 DTO에 넣어서 전송합니다. 해당 DTO를 받..
AOP와 트랙잭션 1. AOP(Aspect Oriented Programming)란? AOP는 관점 지향 프로그래밍입니다. AOP는 자바와 같은 객체 지향 프로그래밍(OOP)을 더욱 OOP 답게 사용할 수 있도록 도와주는 역할을 합니다. AOP는 여러 개의 핵심 비즈니스 로직 외에 공통으로 처리되어야 하는 로그 출력, 보안 처리, 예외 처리와 같은 코드를 별도로 분리해서 하나의 단위로 묶는 모듈화의 개념으로 생각할 수 있습니다. AOP에서 관점은 핵심적인 관점과 부가적인 관점으로 나눌 수 있습니다. 핵심적인 관점은 핵심 비즈니스 로직을 의미하고, 부가적인 관점은 앞에서 이야기한 공통으로 처리되어야 하는 코드를 의미합니다. 여러분의 쉬운 이해를 위해 이미지를 첨부하도록 하겠습니다. 객체 지향 프로그래밍 (OOP) 각각의 화..
4. 생성자 주입, 의존성 주입 1. 다양한 의존성 주입 방법 [ 1. 생성자 주입(Constructor Injection) ] 생성자 주입(Constructor Injection)은 생성자를 통해 의존 관계를 주입하는 방법이다. @Service public class UserServiceImpl implements UserService { private UserRepository userRepository; private MemberService memberService; @Autowired public UserServiceImpl(UserRepository userRepository, MemberService memberService) { this.userRepository = userRepository; this.memberSer..
3. ioc란 IoC (Inversion of Control) 제어의 역전이라고 불리운다. 제어권이 역전 되었다는 뜻이다. 예전에는 의존관계의 제어를 개발자가 직접 해주었다. 그러나 제어권이 컨테이너로 넘어갔고 객체의 생성부터 생명주기의 관리까지 객체에 대한 제어권이 바뀐것을 IoC라고 한다. 위와 같은 Repository 객체가 있을때 과거에는 아래와 같이 개발자가 직접 제어했다. 하지만 제어권이 컨테이너로 넘어갔고 객체의 생성과 생명주기의 관리까지 할 수 있기때문에 아래와 같은 방식으로 바뀐다. IoC 컨테이너란 ? 핵심 Interface : BeanFactory Application Component 중앙 저장소 Bean 설정 소스로부터 빈 정의를 읽어들여 빈을 구성하고 제공하는 역할을 한다. Spring IoC..