전체 글 69

[Spring] AOP 관점지향 프로그래밍 | 횡단 관심사 분리

a. aspect 만들기@Slf4j@Aspect/** * 애스팩트: 어드바이스와 포인트컷을 하나로 묶은 모듈 */public class AspectPractice { // 포인트컷 // 어드바이스 위치}  AOP 등록@Configurationpublic class WebConfig { @Bean public AspectPractice getAspectPracticeAop() { return new AspectPractice(); }}    b. 패키지 범위 기반 포인트컷 만들기 /** * 포인트컷: 서비스 패키지 기반 */ @Pointcut("execution(* com.standard.sparta.service..*(..))") pr..

Spring 2024.09.10

[Spring] 단위 테스트 | 테스트 코드 작성법

1. BeforeAfterTestpackage com.sparta.junit5practice;import org.junit.jupiter.api.*;public class BeforeAfterTest { @BeforeEach void setUp() { System.out.println("각각의 테스트 코드가 실행되기 전에 수행"); } @AfterEach void tearDown() { System.out.println("각각의 테스트 코드가 실행된 후에 수행\n"); } @BeforeAll static void beforeAll() { System.out.println("모든 테스트 코드가 실행되기 전에 최초로 수행\n")..

Spring 2024.09.10

[개발일지] KPT 회고 | 잘하고10조의 뉴스피드 프로젝트 제작 회고

Keep ( 현재 잘 진행 되고 있고, 계속 했으면 좋겠는 것)Problem ( 불편하게 느끼며, 개선이 필요하다 느끼는 것)Try ( Problem에 대한 문제 개선, 당장 실행 가능 한 것)  Keep 1.  팀원들이 각자 맡은 바를 포기하지 않는 모습이 좋았습니다.2. 문제가 발생했을 때 팀원들과 같이 소통하며 방법을 찾으려고 노력한 것3. 코드 작성 후 완료가 되면 모두가 한 번씩 실행해본 것이 좋았다.4. 팀원 전부 적극적인 태도로 프로젝트에 참여한 것이 좋았다.5. 팀워크가 너무 좋았습니다! Problem1. 포스트맨 사용법이 익숙치 않아서 조작이 서툴렀던 점이 아쉬웠습니다.2. 해야 할 일을 다 끝냈을 때 개선 방향을 팀원들끼리 찾지 못한 것3. 겹쳐있는 기능들이 있는데 이런 기능은 순서를 ..

개발일지 2024.09.09

[개발일지] 깃 리드미 꾸미기 | 깃 리드미 작성법 | 깃 리드미 이모티콘 삽입 | 깃 리드미 마크다운 문법

이번에 뉴스피드 프로젝트를 완성 후 readme를 작성해보았습니다. https://github.com/nbcamp-newsfeed-10/nbcamp-newsfeed GitHub - nbcamp-newsfeed-10/nbcamp-newsfeedContribute to nbcamp-newsfeed-10/nbcamp-newsfeed development by creating an account on GitHub.github.com 깃허브 링크도 걸어놓겠습니다!!       프로젝트 레포지토리를 생성하면 이렇게 하단에 리드미 파일을 추가할 수 있게 되어있습니다.이때 Add a README를 추가하게 되면  이런 형태로 마크다운 문법을 사용하여 리드미를 원하는대로 꾸며서 작성할 수 있습니다.요즘 가방꾸미기, 키링..

개발일지 2024.09.06

[Spring] 스프링 예외처리 통일 | 스프링 HttpStatus 반환 통일 | 스프링 에러 통일

협업하다보면 에러 메세지를 작성하는 방식이 모두 다릅니다.더하여 리턴할 숫자도 정해주어야 하는데요!이번에 스프링으로 개발하며 사용했던 에러 통일 방법을 알려드리겠습니다.   먼저 ApiPayload 패키지를 만들어줍니다.com/└── sparta/ └── newsfeed/ ├── ApiPayload/ │ ├── Code/ │ └──── dto/ | └────── ErrorReasonDto.java | └────── ReasonDto.java │ ├──── Status/ │ ├────── ErrorStatus.java │ ├────── SuccessStatus.java ..

Spring 2024.09.05

[개념정리] RESTful API | 적절한 관심사 분리 | Setter | NoSQL & RDBMS | 객체지향 프로그래밍

RESTful한 API를 설계하는 장점은? 꼬리질문 - 실제로 RESTful한 API를 설계하면서 느낀 장점 1. API란 무엇인가?  * 응용 프로그램들이 서로 소통하기 위한 방법을 정의하는 규약입니다. * 다른 소프트웨어 시스템이 정보를 교환하고, 기능을 활용할 수 있도록 하는역할을 담당합니다. 예를 들어 배달 어플로 음식점에서 음식을 주문하려고 합니다. 이때 손님은 음식점에게 주소, 메뉴 등의 자원을 전달해주어야 하는데 이 전달을 해주는 역할이 배달 어플, 즉 API라고 할 수 있습니다. 2. REST란? * 서버와 클라이언트 간에 데이터를 쉽게 주고 받을 수 있도록 하는 아키텍쳐 스타일입니다. * HTTP 위에서 별도의 전송 계층없이 전송하는 아주 간단한 인터페이스입니다. * 자원(문서, 이미지,..

개념정리 2024.09.03

[개념정리] 자바 프로그램 실행 과정 및 기본 구조 | JVM 구조

1. 자바 프로그램 실행 과정 자바 파일을 컴파일러가 해석하면서 자바 바이트 코드로 번역을 합니다.번역된 자바 바이트 코드를 JVM이 읽고 실행합니다. Java 바이트 코드란?: JVM이 이해할 수 있는 언어로 번역된 자바 소스 코드를 말합니다. 바이트라는 이름이 붙은 것은 변환되는 코드의 명령어 크기가 1바이트라서 바이트 코드라고 합니다. JVM이란?: Java Virtual Machine의 줄임말입니다. Write once, run everywhere 즉, OS마다 따로 코드를 작성해야 하는 번거로움 없이 코드를 짜면 어떤 운영체제에서든, 어떤 하드웨어에서든 실행될 수 있게 해주는 것이 JVM입니다.: 예를 들어, C로 짠 프로그램은 바로 기계어로 컴파일하믈 하드웨어 기종에 맞게 컴파일 해주어야 합니..

개념정리 2024.08.31

[Spring] Filter | Filter Interface

Filter란? 서블릿 필터(Servlet Filter)는 Java 웹 애플리케이션에서 클라이언트의 요청(request)과 응답(response)을 가로채서 처리할 수 있는 강력한 매커니즘입니다.필터는 요청이 특정 서블릿에 도달하기 전 또는 응답이 클라이언트에게 전달되기 전에 실행됩니다.이를 통해 요청/응답 데이터를 조작하거나, 접근을 제어하고, 로깅을 수행하는 등의 작업을 할 수 있습니다.   Filter Interface 서블릿 필터 인터페이스는 jakarta.servlet.filter 인터페이스를 구현하여 작성됩니다.이 인터베이스는 서블릿 요청을 가로채어 처리할 수 있도록 하는 메서드들을 제공합니다. 예시import jakarta.servlet.Filter;import jakarta.servlet...

Spring 2024.08.29

[Spring] 1대N 관계 | N대1 관계 | N대M | 양방향, 단방향 관계 정리

스프링(Spring Framework)에서 1대N, N대1, N대M 관계는 객체 관계 매핑(ORM)에서 많이 사용되며,주로 JPA에서 엔티티 간의 관계를 설정할 때 사용됩니다.이 관계들은 데이터베이스 테이블 간의 관계를 객체 모델에서 표현하는 방법입니다.또한, 양방향과 단방향 관계는 엔티티 간의 데이터 접근 방법을 정의합니다.   1. 1대N (One-to-Many) 관계 설명: 하나의 엔티티가 여러 개의 다른 엔티티를 참조하는 관계입니다.예시: 예를 들어, 하나의 부서(Department)가 여러 명의 직원(Employee)를 가질 수 있습니다. 구현 코드 예시@Entitypublic class Department { @Id @GeneratedValue private Long id; @..

Spring 2024.08.28