Spring & Spring Boot 14

[springboot] 파일 다운로드 구현할 때, 메모리 잡히는 것 해결 방법!!

상황 byte[] totalByte = Files.readAllBytes(Paths.get(resourceMasterEntity.getPath())); .... BufferedOutputStream outStream = new BufferedOutputStream(response.getOutputStream()); .... outStream.write(totalByte); 파일을 byte로 저장한 뒤, response로 보내려는 목적으로 작성했고 실제로 작동을 했으나 서버가 터졌습니다......ㅠㅠ 이유를 알아보고자 해당 API가 동작할 때 서버 cpu와 메모리를 관찰했습니다. .......?!?! 실제로 CPU 사용량의 %가 100을 훌쩍 넘겼으며 CPU 사용량이 비정상적일 때 나타나는 Controll..

MyBatis란?

MyBatis란? SQL Mapping Framework. 1. SQL Mapping - Java코드로부터 SQL문을 분리해서 관리. - Java코드와 SQL코드를 맵핑하는 것을 말한다. - SQL을 별도의 XML파일로 분리한다.(ex. *Mapper.xml) - 매개변수 설정과 쿼리 결과를 읽어오는 코드를 제거.(ex. setInt(), getInt()) - 작성할 코드가 줄어서 생산성 향상 & 유지 보수 편리. - XML에 있는 SQL을 간단한 코드로 사용할 수 있다. → 쉽고 간편하다. 2. Spring과 연동 매커니즘. MyBatis만 사용할 수 있지만, 일반적으로 Spring과 연동해서 사용하기 때문에 'mybatis-spring'이 필요합니다. 3. MyBatis 사용 전과 후 비교하기. 1)..

JSON / Ajax / REST API

1. JSON이란? Java Script Object Notation : 자바 스크립트 객체 표기법 데이터를 주고 받을 때 XML을 사용했는데 너무 복잡하고 실제 데이터보다 Tag가 더 많아 더 간단하게 표기하기 위한 표기법. ex) {속성명1 : 속성값1 , 속성명2 : 속성값2 , ....} [{속성명1 : 속성값1, ...}, {속성명1 : 속성값1, ...}, ...] //객체 배열 {키1 : {속성명1 : 속성값1, ...}, 키2 : {속성명1 : 속성값1, ...},....} // Map 2. stringify()와 parse() JS(JavaScript)객체를 서버로 전송하려면, 직렬화(데이터->문자열로 변환)가 필요. 직렬화는 데이터를 Text화 시킨다. → 저장 / 전송이 가능하다.(H..

왜 Spring Framework를 선택할까?

1. Framework란? - 프로젝트를 진행하는데 필요한 코드들을 구조화해서 기본으로 가지고 있는 프로젝트. - 목적에 따라 효율적으로 구조를 짜놓은 개발 방식. ....등등 많은 설명이 있지만 위 두 가지로 이해할 수 있습니다. 2. Spring Framework란? - 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 합니다. 동적인 웹 개발을 하기 위한 여러가지 기능을 제공하고 있습니다. JAVA개발에 있어서 대표적인 프레임워크로 자리잡고 있으며 전자정부 표준프레임워크의 기반이 되는 기술이기 때문에 스프링 프레임워크의 활용도는 더욱 높아지고 있습니다. 3. Spring Framework의 특징 경량 컨테이너로서 자바 객체를 직접 관리한다. 각각의 객체 생..