일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- JPQL
- Junit 5
- OS
- 일상
- 테크쇼
- MySQL
- Coputer Science
- ObjectMapper
- 소프티어
- Server
- RequestBody
- Test Doulbe
- 공룡책
- Java
- modelmapper
- db
- JPA
- Test code
- 인프콘2023
- 자바
- enumSet
- mapstruct
- Test
- ExceptionResolver
- softeer
- Service 계층 테스트
- FCM
- Spring
- proxyFactory
- backend
- Today
- Total
목록분류 전체보기 (59)
공부내용공유
서론 이번주에 진행한 스터디의 주제는 스트림이었다. 스트림의 문법, 여러 사용 예시 등을 공부하고 정리하면서 내 이목을 가장 많이 끈것은 함수형 프로그래밍이라는 키워드였다. 자바의 스트림은 함수형 프로그래밍을 지원하기 위해 도입되었기에 서치를 하면서 함수형 프로그래밍에 대한 여러 자료들을 접할 수 있었고 이번 기회에 확실히 개념을 정리하고자 이 글을 작성하였다. 본론 해당 글은 기본적인 자바의 문법을 알고있다는 가정하에 글을 작성하였다. 목차는함수형 프로그래밍이란?자바에서 함수형 프로그래밍을 사용하기 위한 방법들로 이루어질 예정이다. 함수형 프로그래밍이란? 일단 함수형 프로그래밍에 대해 간단히 알아보자, 널리 알려진 프로그래밍 패러다임을 카테고리화 하면 아래와 같이 정리가 될 것이다.명령형 프로그래밍절..
서론 아주 예전에 자바 공부를 할 때 'inner 클래스는 비정적으로 사용하면 메모리 누수가 일어나니 조심하자' 라는 내용의 블로그 글을 본적이 있었고 어렴풋하게 내 머리에 남아있었다. 그러던 도중 이펙티브 자바 item 24. 멤버 클래스는 되도록 static으로 만들어라 라는 주제에 대해 스터디를 하면서 비정적 멤버 클래스(non-static) , 정적 멤버 클래스(static)의 차이와 어떤 때 사용하게 되는지 알게 되었고 해당 글에서 간단히 정리할 예정이다. 본론이 글은 자바의 멤버 클래스 (inner class)와 static에 대한 기본적인 이해가 있다는 가정하에 작성되어졌다. 목차는비정적 멤버 클래스를 사용했을 때 생길 수 있는 문제점HashMap은 이걸 사용한다.문제가 있을 수 있나?로 ..
서론 이펙티브 자바 스터디에서 item 23 태그달린 클래스보다는 클래스 계층 구조를 활용해라라는 주제에 대해 팀원들과 얘기를 나누고 얼마 지나지 않아 오브젝트라는 도서에서 비슷한 주제를 보게 되었다. 이번 글에서는 두 책에서 다루는 클래스 계층 구조 (상속) 과 태그 달린 클래스 방식의 장,단점을 정리할 예정이다. 본론이 글의 목차는태그 달린 클래스계층 구조를 활용한 클래스어떤게 더 좋을까로 이루어져있다. 태그 달린 클래스 태그 달린 클래스란 무엇일까? 코드로 예시를 보면 빠르게 이해가 가능할 것이다.public class User { long id; String name; long level; Address address; UserType userType;}public ..
서론 어떤 기능을 구현하면서 글자 수가 제한되어 있는 중복되면 안되는 랜덤 문자열을 만들어야했다, 글자 수가 제한이 안되어 있다면 uuid, hash 등 다양한 방식을 편하게 사용할 수 있었지만 그렇지 못했기에 이것 저것 찾아보았다. 이번 글에서는 찾아보면서 알게된 랜덤 값을 만드는 클래스, 클래스들의 특징등을 정리할 예정이다. 본론 해당 글은 자바에 구현되어져있는 클래스와 라이브러리를 다룬다. 다른 언어를 사용하는 사람들에게는 큰 도움이 되지 않을 것 같다.글의 목차는랜덤하고 유니크한데 길지는 않은 쌈@뽕한 문자열RandomApache Common (RandomString, RandomUtil ...)Secure Random이렇게 구성될 예정이다. 1. 랜덤하고 유니크한데 길지는 않은 쌈@뽕한 ..
서론 MongoDB는 다양한 장점이 있고 그 중 샤딩과 관련된 유용한 기능들을 제공하는 것도 큰 장점이다. 오늘은 샤딩과 관련하여 이것 저것 테스트를 하기 위해서 로컬에다가 샤딩 환경을 구성하면서 공부한 샤딩과 관련된 내용을 정리할 예정이다. 본론 이번 글의 목차는 - sharding cluseter 만들기- sharding 적용해보기 로 구성되어져 있다. (만약 샤딩이 정확히 뭔지 모르는다면 해당글을 참고하자.) sharding cluster 만들기 샤딩을 위한 shard cluster는 로컬에서 docker로 간단히 만들었고router 1개config DB 1개 (replica set)shard DB 2개 (replica set)이렇게 구성하였다. config 서버의 경우에는 docker로 작성..
서론 계층형 아키텍쳐이든 클린 아키텍쳐를 지향하는 어떠한 아키텍쳐이든 보통 패키지를 도메인 별로 분리하는 경우를 많이 보았고, 현재 진행중인 프로젝트도 도메인 별로 패키지가 나눠져 있는 형태이다. 다른 레이어에서의 구현에서는 큰 문제가 없었으나 도메인 레이어를 구현할 때 참 많이 고민된 부분이 있다, 이전 글에서 언급했듯이 value object를 적극적으로 활용하여 코드를 작성중인데 "value object들의 접근 제어자를 어떻게 설정할 것인가" 이다. (이번 글도 정답이 없는 문제를 제 고민과 주변에서의 조언을 글로 정리한 것으로 반박, 의견 제시 해주시면 감사하겠습니다!) 본론 domain 별로 나눴을 때의 장점public 장점package private의 장점본론은 위 항목으로 구성되어..
서론 value object 여러가지 장점이 있고 이를 잘 활용하면 응집도 높고 DRY한 코드를 작성할 수 있다. 그래서 나도 여러군데서 열심히 사용하려고 노력하였고 이 과정에서 여러 애매한 상황들을 많이 만났다, 오늘 글에서는 value object의 null 처리에 관해서 다룰 예정이다. (지극히 개인적인 경험과 자료를 찾아보면서 제 생각등을 정리한 글이니 참고만 하고 반박 의견이 있다면 공유해주세요.) 본론 목차는value object의 nullObjectValue vs Nullable상황에 맞게?으로 구성될 예정이다. Value Object의 null 객체지향적인 코드를 지향하면서 클래스를 만들고 사용하다보면 value object를 자주 사용하게 된다. 관련된 값들, 로직들을 모음으로 ..
서론 테스트 코드를 작성하다 보면 특정 기능을 테스트 하기 위해 그를 위한 여러 객체들을 만들어야 한다, (entity, vo, req...) 그리고 이러한 객체들 중에는 값들을 굉장히 많이 가지고 있거나 반복적으로 사용되는 것들도 있을 것이다. 이러한 테스트 비즈니스 로직과는 상관없는 부분의 노출을 최소화 하고자 TestFixture를 많이들 사용하고 있을거고 나도 잘 사용중이다, 다만 TestFixture들의 위치를 별 생각없이 두고 있었는데 위치에 관련해서 사수님이 의견을 남겨주셔서 해당 내용에 관해 정리할 예정이다. 본론 목차는TestFixture에 관한 간단한 설명TestFixture 위치의 문제TestFixture 위치 문제 해결문제 해결을 하면서 상기한 자바의 기초 내용으로 구성될..
서론 devocean 이라는 sk 그룹사 개발 관련 플랫폼에서 주관하는 기술 블로그 글 쓰기 온라인 컨퍼런스가 열려서 듣게 되었다. 특별한 목적이 있어서 들은 것은 아니고 기술 블로그를 사용하는 다른 사람들의 생각을 들어보고 싶어서 신청했었다.이 글에서는 강의 내용에 대한 간단한 요약과 내 생각을 정리할 예정이다. 본론글쓰기는 왜 어려울까처음 내용은 글을 꾸준히 쓰기의 어려움으로 시작했다. 각자의 글을 쓰는게 어려운 이유를 말해보라 했을 때다 비슷한 것들이었다.글의 수준이 낮아 부끄럽다.꾸준하게 하기 어렵다.소재가 없다.어자피 글을 읽는 독자 수가 없다.이중 내가 공감된건 1번 2번 2가지였다. 글의 수준이 낮아 부끄럽다. 나도 일주일에 1번씩 글을 작성하면서 제일 힘들었던 점은 내 글의 수준이었..
서론 온보딩 프로젝트를 맡으면서 처음 mongoDB를 사용하게 되어서 정신없이 mongoDB의 기본적인 문법과 spring 에서 제공하는 spring mongo jpa, mongoTemplate 만을 공부하고 디테일한 요소를 챙기지 못했었다. java에서 Bson을 위해 ObjectId 라는 객체를 지원한다는 것을 모르고 id는 String 으로만 사용했었고, 시간 관련 작업을 할 때 id를 활용하겠다는 생각을 못하다가 나중에야 알게되었다. 이 글에서는 objectId의 개념과 java에서 지원하는 객체에 대한 설명, id를 시간 관련 기능에서 어떻게 사용할 수 있는지 정리할 예정이다. 본론 ObjectId란? 저장되는 ObjectId의 예시를 보면 ObjectId(6629ad81291d943e5..