전체 글
-
[Spring boot] Common Response프로젝트/아카이뷰 2024. 1. 9. 21:52
Common Response 왜 궁금했을까❓- SSAFY 1학기 프로젝트에서 시간에 쫒겨 개발을 하다보니 기능 완성에만 집중하여 코드를 작성했다.- 그 결과, 일관되지 못한 REST API Response를 받아오게 되고 Client 입장에서 혼란을 야기할 것이라 생각되었다.- 이러한 문제점을 Common Response를 만들어 구조화 한다면 Client는 일관된 응답을 통해 일의 생산성과 안정성 측면이 향상될 것이라 생각되어 학습하고 Refactoring을 진행해보려 한다. Common Response이번 포스팅에서는 Success Response만 다루고 Error Response는 추후 포스팅에서 다루도록 하겠다.우선, Common Response를 만들기 위해서 응답 구조를 어떻게 구성할지 고..
-
[Spring boot] WebRTC프로젝트/아카이뷰 2024. 1. 8. 22:49
WebRTC 왜 궁금했을까❓- 팀 프로젝트로 WebRTC를 이용해서 취준생들을 위한 모의 면접 컨설팅 플랫폼을 기획했다.- 아직 기획만 나온 단계이지만 WebRTC를 사용해야만 하는 상황이어서 미리 학습해보려고 한다. WebRTC(Web Real-Time Communication) WebRTCAn open framework for the web that enables Real-Time Communications (RTC) capabilities in the browser.webrtc.org공식 문서에서 보면 WebRTC는 Android, IOS Application, Web에서 Plugin, Third Party 설치 없이 동영상, 음성, 일반 데이터를 앱끼리 통신할 수 있도록 도와주는 기술이라고 설명..
-
[Java] Wrapper 클래스프로젝트/Share Your Trip 2024. 1. 7. 13:15
Wrapper 클래스 왜 궁금했을까❓- Optional 클래스에 대해서 공부하는 과정에서 Wrapper 클래스의 개념이 나왔는데 몰랐던 개념이어서 공부하고 정리 해보려고 한다. Wrapper 클래스Java의 자료형은 기본 타입(primitive type)과 참조 타입(reference type)으로 나뉘는데 기본 타입을 객체로 다루기 위해서 사용하는 클래스를 Wrapper 클래스라고 지칭한다.기본 타입만 Wapper 클래스를 적용하는 이유는 boxing, unboxing 등 과정에서 발생하는 오버헤드때문에 성능 저하가 일어날 수 있기 때문이다. Wrapper 클래스의 종류기본 타입(Primitive)Wrapper 클래스byteByteshortShortintIntegerlongLongfloatFloatd..
-
[Java] Optional 클래스프로젝트/Share Your Trip 2024. 1. 6. 20:16
Optional 클래스 왜 궁금했을까❓- SSAFY 1학기 프로젝트를 리팩토링하기 위해 다른 사람들의 블로그를 참고해가며 Error Handling에 대해 공부를 하고 있었는데 Optional 클래스가 사용되는 것을 보았다.- 대부분의 포스팅들에서도 Optional 클래스가 사용되고 있었고 중요도가 높다고 생각이 들어 정리해보려고 한다. Optional 클래스Java 8에서부터 Optional 클래스를 사용하여 NPE(NullPointerException)이 발생하지 않도록 방지할 수 있는 Wrapper 클래스이다.public final class Optional { /** * Common instance for {@code empty()}. */ private static fi..
-
[Spring boot] @Builder 어노테이션프로젝트/아카이뷰 2024. 1. 5. 10:56
Builder 어노테이션 왜 궁금했을까 ❓- Spring boot 교재에서 Builder를 사용하고 Error Handling을 하기 위해 다른 사람들이 게시글을 참고하는 과정에서 대부분 Builder Annotiation을 사용하는 것을 발견했다.- 생성자가 존재함에도 불구하고 Builder Annotation을 쓰는 이유가 궁금했고 알아보려고 한다. @Builder Annotation@Builder Annotation은 lombok 라이브러리에서 지원하며 Builder Pattern으로 객체를 생성해주는 Annotation객체를 생성하는 여러 가지 방법에 대해서 알아보고 @Builder와 비교해보겠다. 생성자를 이용한 객체 생성public class Chanhong { private final ..
-
[Spring boot] @JsonInclude 어노테이션프로젝트/아카이뷰 2024. 1. 4. 15:35
JsonInclude 어노테이션이 왜 궁금했을까 ❓- Error Handling을 공부하는 과정에서 Validation이 발생한 필드와 메시지를 JSON 형식으로 클라이언트에게 내려주는 부분이 있었다.- 해당 부분에 @JsonInclude 어노테이션이 작성이 되어있어 알아보았다. @JsonInclude가 작성되어 있었던 코드 @JsonInclude(JsonInclude.Include.NON_EMPTY) private final List errors; @Getter @Builder @RequiredArgsConstructor public static class ValidationError { private final String field; private final String message; ..
-
[Git] README 작성을 위한 MarkDown 문법기타 2024. 1. 3. 21:22
MarkDown 문법 왜 궁금했을까❓- 1월 1일부터 Github, Blog 등을 운영하여 IT 역량들을 정리하려고 했다.- 다른 Github들을 참고해보니 README를 사용하여 프로젝트에 대한 설명을 하는데 README 파일은 확장자 md를 가진 MarkDown 문법을 사용하고 있었다.- MarkDown 문법에 대해 무지하여 공부하고 README를 작성해보려고 한다. MarkDown 문법 정리제목 (Header)부터 까지 제목을 표현할 수 있다. 강조 (Emphasis)기울기 - *(asterisks), _(underscore)두껍게 - **(asterisks), __(underscore)취소선 - ~~(tilde) 목록 (List)순서가 필요한 목록 - 1, 2, 3, 4순서가 필요하지 않은 목록..
-
[Spring boot] Maven 프로젝트를 Gradle 프로젝트로 변경프로젝트/Share Your Trip 2024. 1. 2. 23:09
Maven에서 Gradle로 변경하는 이유가 뭘까❓- Script 길이와 가독성 면에서 Gradle이 우세- 빌드와 테스트 실행 결과가 Gradle이 더 빠름- Gradle과 Maven 성능 비교 - https://gradle.org/maven-vs-gradle/- Grade은 Cache를 사용하기 때문에 테스트 반복 시 차이가 더 커짐- Maven의 경우 멀티 프로젝트에서 특정 설정을 다른 모듈에서 사용하려면 상속을 받아야 하지만, Gradle은 Configuration Injection 방식을 사용하기 때문에 멀티 프로젝트에 용이- SSAFY 2학기에 진행되는 팀 프로젝트는 1학기보다 규모가 커질 것으로 예상되어 Gradle을 사용해보기로 결정 Maven 프로젝트에서 Grade 프로젝트로 변경 과정 ..