Spring

· Spring
데이터 주도형 애플리케이션에서 성능과 사용자 경험을 최적화하기 위해서는 효과적인 데이터 관리가 필수적이다. 페이징 처리는 대용량 데이터를 처리할 때 부하를 분산시키고 사용자에게 빠른 응답을 제공하는 기법 중 하나이다. Spring Data JPA의 Pageable과 Page는 이러한 문제를 해결하기 위한 간단하면서도 강력한 해법을 제공한다. 1. 페이징 처리의 이해: 페이징 처리는 데이터를 페이지 단위로 나누어 순차적으로 접근할 수 있게 하는 기술이다. 사용자는 필요한 데이터의 일부만 요청하고 조회함으로써, 메모리 사용량을 줄이고 애플리케이션의 반응 속도를 개선할 수 있다. 2. Pageable 인터페이스의 사용: Pageable 인터페이스는 페이지 번호(page), 페이지 크기(size), 정렬(sor..
· Spring
사용하는 이유 및 특징: 효율적인 데이터 로딩: 대용량 데이터를 모두 한번에 로딩하는 것은 시스템에 부하를 줄 수 있기 때문에 페이징 처리를 통해 필요한 만큼의 데이터만 로드하여 시스템의 효율성을 높일 수 있다. 사용자 경험 향상 사용자가 한 페이지에서 너무 많은 정보를 한번에 볼 때, 원하는 데이터를 찾기 어렵고 혼란스러울 수 있다. 페이징 처리를 통해 정보를 구조적으로 제공하면 사용자 경험이 향상된다. 네트워크 트래픽 감소 한번의 요청으로 모든 데이터를 전송하는 것보다, 필요한 부분만 요청하여 전송하는 것이 네트워크 트래픽을 줄여준다. 서버 부하 감소 데이터베이스에서 필요한 부분만 쿼리하여 가져오는 것은 서버와 데이터베이스의 부하를 줄여주며, 전체 시스템의 응답 시간을 개선시켜준다. 데이터 관리 용이..
· Spring
1. Swagger (특징, 장점, 단점, 작동 방식) 특징: Swagger는 OpenAPI Specification (OAS)에 기반하여 API 문서화와 다른 도구들과의 통합을 지원한다. 자동으로 API 엔드포인트를 탐색하여 문서를 생성하며, UI를 통해 API를 시험할 수 있다. API의 구조, 요청/응답 형식, 상태 코드, 오류 메시지 등을 시각적으로 표시한다. 장점: 쉬운 세팅 및 사용. 눈에 띄는 UI. 실제 API 호출 기능 제공. 단점: 코드에 주석을 기반으로 하므로, 실제 코드와 문서화 사이에 불일치가 발생할 수 있다. 실제 코드와 동기화를 위해 추가 작업이 필요할 수 있다. 작동 방식: Swagger는 주로 코드나 주석에 기반하여 API 문서를 자동 생성한다. 2. Spring REST ..
· Spring
VO객체를 만들어 JSON으로 출력을 하다보면 상황에 따라 필요 없는 값을 모두 보여준다. 기본적인 스프링 MVC 구조를 예를 들어보겠다! /* VO */ public class BoardVO { private String id; private String title; private String contents; private String link; /* Getter */ /* Setter */ /* ToString */ } /* DAO */ @Repository public class BoardDAO { @Autowired private SqlSession session; private String namespace = "com.xxx.xxx.xxx.mapper."; public List selectB..
· Spring
0. JPA, MyBatis 등장 배경 기존에 JDBC를 사용헀을 때는 sql문이 코드에 섞여 있었고 만들어 요청하는 과정에서 sql문 생성시 String을 붙이고 자르는 등의 작업이 필요해서 sql문이 조금만 길어져도 번거롭고 관리도 힘들었다. 따라서 코드와 sql문을 분리해서 관리하기 위해서 JPA, MyBatis 등을 사용한다. 1. MyBatis란 ? 1. SQL 실행 결과를 자바 빈즈 또는 Map 객체에 매핑해주는 Persistence 솔루션으로 관리한다. SQL을 소스 코드가 아닌 XML로 분리한다. 2. SQL문과 프로그래밍 코드를 분리해서 구현한다. 3. 데이터소스 기능과 트랜잭션 처리 기능을 제공한다. 2. MyBatis의 장점, 단점 장점: 1. 접근이 쉽고 코드가 간결하다. (배우기가..
· Spring
프로퍼티(Properties) 파일이란, - KeyWord 설정 정보를 XML로 분리해두면 빈 클래스나 의존관계 정보를 소스코드 수정 없이도 간단히 조작할 수 있다. XML에는 빈의 정의와 의존관계뿐 아니라 빈이 필요로 하는 각종 설정 정보를 프로퍼티 값으로 지정해줄 수도 있다. (대표적인 설정 값 : dataSource) 서버환경에 종속적인 정보가 있다면, 이를 애플리케이션의 구성정보에서 분리하기 위해서이다. 환경에 따라 자주 변경될 수 있는 내용은 프로퍼티 파일로 분리하는 것이 가장 깔끔하다. XML처럼 복잡한 구성이 필요 없고 키와 그에 대응되는 값의 쌍으로 구성하면 충분하기 때문이다. 장점 : @Value를 효과적으로 사용할 수 있다. @Value는 소스코드 안에 포함되는 애노테이션이어서 값을 수..
· Spring
· 사용자의 레벨은 BASIC, SILVER, GOLD 세 가지 중 하나다. · 사용자가 처음 가입하면 BASIC 레벨이 되며, 이후 활동에 따라서 한 단계씩 업그레이드될 수 있다. · 가입 후 50회 이상 로그인을 하면 BASIC에서 SILVER 레벨이 된다. · SILVER 레벨이면서 30번 이상 추천을 받으면 GOLD 레벨이 된다. · 사용자 레벨의 변경 작업은 일정한 주기를 가지고 일괄적으로 진행된다. 변경 작업 전에는 조건을 충족하더라도 레벨의 변경이 일어나지 않는다. 1. 정수형 상수 값으로 정의했을 때 (사용하면 안됨) class User { private static final int BASIC = 1; private static final int SILVER = 2; private sta..
· Spring
@RestController는 @Controller에 @ResponseBody가 추가된 것으로 주 용도는 Json 형태로 객체 데이터를 반환하는 것이다. Controller로 View 반환 1. Client는 URI 형식으로 웹 서비스에 요청을 보낸다. 2. DispatcherServlet이 요청을 위임할 HandlerMapping을 찾는다. 3. HandlerMapping을 통해 요청을 Controller로 위임한다. 4. Controller는 요청을 처리한 후에 ViewName을 반환한다. 5. DispacherServlet은 ViewResolver를 통해 ViewName에 해당하는 View를 찾아 사용자에게 반환한다. Controller로 Data 반환 1. Client는 URI 형식으로 웹 서비스..
· Spring
contains // a가 student를 포함하고 있으면 true 반환 a = "Hello student."; str = StringUtils.contains(str, "student"); System.out.println("contains : " + str); defaultString // a가 null이면 "", 아니면 a 반환 a = "Hi"; str = StringUtils.defaultString(str); System.out.println("defaultString : " + str); deleteWhitespace // 문자열 중 공백 문자가 있으면 모두 제거 a = "H e l l o"; str = StringUtils.deleteWhitespace(a); Sytem.out.println..
· Spring
1. MyBatis org.mybatis mybatis 3.2.8 2. MyBatis Spring org.mybatis mybatis-spring 1.2.2 3. root-context.xml 내용 추가 4. src/main/resources 파일 추가 (mybatis-config.xml) 5. src/main/resources 폴더와 파일 추가 (Mapper.xml) ex) 1) mappers -> com -> ex -> exercise -> board -> mapper 순으로 폴더 생성 2) Mapper.xml 생성 BoardMapper.xml http://mybatis.org/dtd/mybatis-3-mapper.dtd"> m.ex.exercise.board.mapper"> INSERT INTO b..
· Spring
1. 라이브러리 Spring JDBC org.springframework spring-jdbc ${org.springframework-version} 2. root-context.xml 내용 추가 아래 부분에 추가
· Spring
1. 로그 예제) TestController.java import org.slf4j.Logger; import org.slf4j.LoggerFactory; private static final Logger logger = LoggerFactory.getLogger(TestController.class); @GetMapping("/list") public String testList() { logger.info("TestController, testList."); return "test/testList"; } 2. 필터 설정 Project -> src -> main -> web.xml appServlet / 아랫부분에 추가 encodingFilter org.springframework.web.filter...
공모
'Spring' 카테고리의 글 목록