SEB_BE_45/공부 정리


🧑🏻💻 TIL(Today I Learned) ✔️ 페이지네이션(Pagination) 구현하기 💡 페이지네이션(Pagination) ➡️ 데이터 베이스에 회원 정보가 100건이 저장되어 있는데 클라이언트 쪽에서 100건의 데이터를 다 요청하는 것이 아니라 한 페이지에 일정 개수만큼만 나누어서 달라고 요청하는 것 ➡️ 즉 page 번호가 1 이고 페이지에 포함되는 데이터의 개수가 10건일 경우, 데이터베이스 테이블에서는 1 row 부터 10 row 까지만 조회되어야 함 ➡️ 하지만 위와 같이 조회를 하면 가장 오래된 데이터부터 10건씩 조회되기 때문에 일반적으로 테이블의 row를 역순으로 10건씩 가져와서 최신 데이터부터 조회하는 경우가 많음 🔎 Pageable ➡️ Pagination을 개발자가 직접 구..


🧑🏻💻 TIL(Today I Learned) ✔️ checked Exception, unchecked Exception 💡 체크 예외와 언체크 예외 ➡️ 애플리케이션에서 발생하는 예외는 체크 예외와 언체크 예외로 구분 체크 예외(Checked Exception) : 발생한 예외를 잡아서(catch) 체크한 후에 해당 예외를 복구하든가 아니면 회피하든가 등의 어떤 구체적인 처리를 해야하는 예외 : ex) ClassNotFoundException 언체크 예외(Unchecked Exception) : 예외를 잡아서(catch) 해당 예외에 대한 어떤 처리를 할 필요가 없는 예외 : 명시적으로 잡아서 어떤 처리를 할 필요가 없음 : ex) NullPointerException, ArrayIndexOutOfBo..


🧑🏻💻 TIL(Today I Learned) ✔️ @ExceptionHandler, @RestControllerAdvice ➡️ 어떤 요청 데이터 중에서 어떤 항목이 에러가 났는지 좀 더 구체적으로 알 수 있도록 바꾸는 작업이라고 할 수 있겠음 1. @ExceptionHandler ➡️ Spring에서의 예외는 애플리케이션에 문제가 발생할 경우 문제를 알려서 처리하는 것뿐만이 아니라 유효성 검증에 실패했을 때와 같이 이 실패를 하나의 예외로 간주하여 예외를 던져 예외처리를 유도함 ➡️ Controller 계층에서 발생하는 에러를 잡아서 메서드로 처리해주는 기능 (Service, Repository에서 발생하는 에러는 제외) MemberController에 위 코드를 작성하고 postMember() 핸들..


🧑🏻💻 TIL(Today I Learned) ✔️ 서비스 계층, 매퍼(Mapper) 💡DI를 통한 서비스 계층과 API 계층 연동하기 ➡️ 서비스 계층과 API 계층이 연동한다는 의미는 API 계층에서 구현한 Controller 클래스가 서비스 계층의 Service클래스와 메서드 호출을 통해 상호작용한다는 것을 의미함 🔎 Service? ➡️ 애플리케이션에 있어 Service의 의미는 도메인 업무 영역을 구현하는 비즈니스 로직과 관련 있음 ➡️서비스 계층은 비즈니스 로직을 처리하기 위해 대부분 도메인 모델을 가지고 있고 그 모델은 빈약한 도메인 모델(anemic domain model)과 풍부한 도메인 모델(rich domain model)로 구분할 수 있음 또한 DDD(도메인 주도 설계, Domai..


🧑🏻💻 TIL(Today I Learned) ✔️ DTO(Data Transfer Object) 💡 DTO(Data Transfer Object)란? ➡️ 마틴 파울러가 'Patterns of Enterprise Application Architecture'라는 책에서 처음 소개한 엔터프라이즈 애플리케이션 아키텍처 패턴 중 하나 ➡️ 데이터를 전송하기 위한 용도의 객체라고 생각하면 편함 ➡️ 클라이언트에서 서버 쪽으로 전송하는 요청 데이터, 서버에서 클라이언트 쪽으로 전송하는 응답 데이터의 형식으로 클라이언트와 서버 간의 데이터 전송이 이루어지고 이 사이에서 DTO를 사용할 수 있음 🔎 DTO 가 필요한 이유? 1. 코드의 간결성 ➡️ 이전 수업 시간에서 작성했던 Memeber Controller 코드..


🧑🏻💻 TIL(Today I Learned) ✔️ Spring MVC 아키텍처, Controller 1. Spring MVC란? ➡️ Spring 모듈 중에 웹 계층을 담당하는 몇 가지 모듈이 있는데 그중에서 서블릿(Servlet) API 를 기반으로 클라이언트의 요청을 처리하는 모듈을 "spring-webmvc" 라고 함 ➡️ 클라이언트의 요청을 편리하게 처리해 주는 프레임워크 📍서블릿(Servelt)이란? : 클라이언트의 요청을 처리하도록 특정 규약에 맞추어서 Java 코드로 작성하는 클래스 파일 : Spring MVC 내부에서는 서블릿을 기반으로 웹 애플리케이션이 동작함 : 아파치 톰캣(Apache Tomcat)은 서블릿이 웹 애플리케이션으로 실행 되도록 도와주는 서블릿 컨테이너(Servlet C..

📣 5월 10일부터 오늘까지의 회고록 짧은 회고록 Section 2 가 끝나고 맞이하는 두 번째 회고. 두 달 차로 접어드니 확실히 체력적으로 많이 약해진 게 느껴졌다. 더 늘어난 공부 분량에 이해 안 가는 것 투성이라 밤늦게까지 붙잡고 있었더니 매일 아침이 힘들었다. 운동을 꼬박꼬박 해야지 마음 먹었던 것과는 다르게 일주일에 한 번은 할까 말까 한 수준이 됐다. 부족해진 잠을 채우기에 급급했다. 체력이 떨어지니 자꾸 해야할 일도 미루고 집중도 잘 되지 않았다. 그러다 보니 게을러지고 해이해지기 까지 했다. 공부는 체력이라고 다시 마음을 먹고 주 3 회 운동을 시작해야겠다는 생각이 든다. 이번 섹션은 여러모로 힘든 점이 많았었다. 처음으로 접하는 알고리즘은 정말 이해하기 쉽지 않았다. 어려우니까 자꾸 회..

🧑🏻💻 TIL(Today I Learned) ✔️ Spring Framework 핵심 개념 - AOP(Aspect Oriented Programming) 실습 💡 로깅(logging)? ➡️ 애플리케이션이나 컴퓨터 시스템에서 발생하는 이벤트, 상태, 오류 등의 정보를 제공하는 일련의 기록(log)를 생성하는 과정 또는 그 결과 ➡️ 로그를 활용하여 시스템의 사용량이나 트래픽 등을 모니터링하고 성능을 개선하는 데 활용 가능 ➡️ 일반적으로 프로그래밍 언어나 프레임워크에서 제공하는 로그 라이브러리를 사용하여 구현할 수 있음 : 스프링 부트를 사용하면 기본적으로 스프링 부트 로깅 라이브러리가 포함되고, SLF4J / Logback 두 가지의 로깅 라이브러리 제공함 오늘 실습에서는 Log4J, Log4J2, ..


🧑🏻💻 TIL(Today I Learned) ✔️ Spring Framework 핵심 개념 - AOP(Aspect Oriented Programming) 💡 AOP(Aspect Oriented Programming), 관심 지향 프로그래밍 ➡️ 애플리케이션 개발의 과정에서 여러 객체에 공통적으로 적용할 수 있는 공통의 관심 사항(Cross-cutting Concern)과 핵심 로직과 관련한 핵심 관심 사항(Cross-cutting Concern)을 분리시키는 프로그래밍 기법 (애플리케이션의 보안, 로깅, 트랜잭션 등 공통적인 관심 사항을 따로 분리시켜 관리하는 것과 관련있음) ➡️ AOP를 사용하여 코드의 간결성과 재사용성을 높이고 객체지향 설계 원칙에 좀 더 부합하는 코드를 구현할 수 있음 🔎 프록시..