전체 글
-
(2024-01-09 TIL) 직렬화 역직렬화TIL 2024. 1. 9. 21:49
이번 주제는 지난 프로젝트에서 꽤 많이 애 먹었던 에러의 원인인 직렬화와 역직렬화입니다. 기억을 되짚어 보면 직렬화와 역직렬화가 반복하는 에러였습니다. 이렇게 에러가 일어난 부분은 확실하고 명확하게 배우고 넘어가야 다음에 이런일이 있을때 시간낭비 하지 않을 수 있다고 생각합니다. 1. 직렬화와 역직렬화 직렬화는 객체를 바이트 스트림으로 변환하는 과정이고, 역직렬화는 바이트 스트림에서 객체로 변환하는 과정입니다. 2. 데이터 직렬화 포멧 주요한 데이터 직렬화 포멧에 대해 알려드리겠습니다. JSON(JavaScript Object Notation) 특징: 가독성이 높고, 사람이 읽기 쉽습니다. 경량이며, 다양한 프로그래밍 언어에서 파싱이 용이합니다. 키-값 쌍으로 이루어진 데이터 구조를 사용합니다. 웹에서 ..
-
(2023-01-05 TIL) Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role 에러의 원인찾기TIL 2024. 1. 5. 09:01
한창 업무 관리 프로그램을 만드는 프로젝트를 팀원들과 하고 있을 때 벌어진 일입니다. 문제 발생지점입니다. 에러 로그에 찍힌 모습은 아래와 같습니다. Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.sparta.givemetuna.domain.user.entity.User.boardUserRoles: could not initialize proxy - no Session] ..
-
(2024-01-03 TIL) @NoArgsConstructor? @RequiredArgsConstructor? @AllArgsConstructor?TIL 2024. 1. 4. 23:12
프로젝트 중 responseDto 와 requestDto를 작성할 때 생긴 일입니다. 같은 팀원 분이 저와는 다르게 dto에 @NoArgsConstructor와 @AllArgsConstructor를 사용하는 것을 보고 이 부분에 대해 정리가 필요하다고 느껴졌습니다. 1. @NoArgsConstructor 역할: 파라미터가 없는 기본 생성자를 생성합니다. import lombok.NoArgsConstructor; @NoArgsConstructor public class Example { // Fields } 2. @RequiredArgsConstructor 역할: 클래스의 필수인 필드를 사용하여 생성자를 자동으로 생성합니다. import lombok.RequiredArgsConstructor; @Requi..
-
(2023-12-26 TIL) @Configuration에 대하여TIL 2023. 12. 27. 10:27
@Configuration이란? @Configuration을 사용하는 이유 @Configuration의 사용 예 1. @Configuration이란? @Configuration은 Spring에서 Java 기반의 설정 클래스를 정의할 때 사용됩니다. 이 어노테이션을 사용하면 해당 클래스가 애플리케이션의 구성(configuration)과 빈(bean)의 정의를 제공한다는 것을 나타냅니다. 이 클래스는 보통 XML 파일 대신에 Java 코드를 사용하여 애플리케이션의 설정을 정의할 때 주로 활용됩니다. 2. @Configuration을 사용하는 이유 Java 기반 설정: @Configuration이 적용된 클래스는 Java 코드로 애플리케이션의 설정을 정의할 수 있습니다. 이는 XML같은 다른 형식의 외부 설정..
-
(2023-12-21 TIL) Builder를 대체 왜쓰는걸까?TIL 2023. 12. 23. 14:54
오늘도 어김없이 코딩을 이어나가던 평화로운 날이었습니다. 근데 강의를 보면서 느꼈던 자그마한 의문점이 이전에 쌓이고 쌓인 물음표에 점을 찍었습니다. 그래서 오늘은! 엔티티로 객체를 만들때 Builder를 쓰는 이유에 대해서 알아볼 예정입니다. @Builder는 Lombok에서 지원하는 어노테이션 중 하나로, 빌더 패턴을 자동으로 생성해주는 기능을 합니다. 빌더 패턴은 객체의 생성과 속성 설정을 더 가독성 있고 유연하게 할 수 있는 디자인 패턴입니다. 이제부터 @Builder의 사용법 @Builder를 사용하는 이유 @Builder와 다른 방법 비교를 통해 @Builder가 우수한 점 에 대해 알아보겠습니다. 1. @Builder의 사용법 @Builder를 사용하면 해당 클래스의 빌더를 생성할 수 있습니다..
-
객체지향 프로그래밍 파헤치기) 캡슐화를 알아보자!프로그래밍 언어/Java 2023. 12. 15. 18:06
객체지향 프로그래밍을 사용하는 Java는 4가지 큰 특징이 있습니다. 캡슐화 상속 다형성 추상화 위의 4가지는 Java 프로그래밍 개념의 가장 밑단에 있으며 이를 제대로 이해하지 못한다면 Java를 제대로 사용한다고 말할 수 없습니다. 저도 이 개념들을 확실히 이해하고자 이렇게 정리한 내용을 포스팅하려합니다. 이번 포스팅의 주제는 캡슐화입니다. 캡슐화라고 하면 무엇을 상상하시나요? 저는 영양제나 알약 겉부분의 원통형 모양이 가장 먼저 떠오릅니다. 이 캡슐의 용도는 안에 있는 영양제나 약의 성분을 온전히 원하는 곳에 전달하기위해 바깥의 간섭을 막아주는 역할을 합니다. Java의 캡슐화는 어떨까요? Java에서 캡슐화란 속성(필드)와 행위(메서드)를 하나로 묶어 객체로 만든 후 실제 내부 구현 내용은 외부에..
-
로그인 API를 설계&개발해보자!프로젝트 2023. 12. 15. 15:02
지난 포스팅 회원가입 API 개발에서부터 이어서 시작해보겠습니다. https://yoosup0920.tistory.com/34 회원가입 API를 설계&완성해보자! 오늘은 지난 시간 동안 배웠던 Spring에 대해 복습해보는 시간을 가져보도록 하겠습니다. 먼저 요구사항부터 살펴보죠! 회원 가입 API 요구사항 닉네임, 비밀번호, 비밀번호 확인을 request에서 전달 yoosup0920.tistory.com 로그인 API를 개발하기 위한 요구사항부터 먼저 확인해 보겠습니다. 로그인 API 요구사항 닉네임, 비밀번호를 request에서 전달받기 로그인 버튼을 누른 경우 닉네임과 비밀번호가 데이터베이스에 등록됐는지 확인한 뒤, 하나라도 맞지 않는 정보가 있다면 "닉네임 또는 패스워드를 확인해주세요."라는 에러..