반응형
리팩터링 2판 - JS 모르는 사람도 샘플코드 실행해보기
Dev Note 2022. 9. 5. 16:43

물.론. 처음부터 끝까지 책만보고 실습을 해도 좋다. 하지만 21세기를 사는 우리에게 하루 24시간은 너무 짧다. 있는 걸 돌려보는 것만해도 어느 정도 학습효과가 분명 있다. (변명 x 9999999) 그래서 이미 준비된 실습 코드를 실행해보기로 했다. 공식적으로 마틴 파울러가 제공하는 실습코드는 없다. 대신 리팩터링 2판을 출판한 출판사에서 실습코드가 있는 좌표를 찍어주었다. 필자는 가능한한 덜 고생해서 최대한 많은 것을 얻으려는 날먹 정신(?)이 강하기 때문에 여기서부터 시작한다. 해당 링크는 아래를 참고하시길. GitHub - wickedwukong/martin-fowler-refactoring-2nd: Practice refactoring techniques in the Martin Fowler'..

피, 땀, 눈물없이 할 수 없는 게임 이야기 (피, 땀, 리셋)
Study 2022. 8. 28. 23:55

한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다...만진심이 담겨있습니다. 허위 사실 유포는 😎일절 없음. 프로젝트. 크면 클수록 시간도 비용도 많이 들지만 사람의 정신적 에너지 소모도 크다. 어디든 그렇겠지만 게임은 비교적 더 자극적이다. 게임이라는 공학적인 기술의 산물이 유저에게 예술적으로 소비가 되기까지 겪어도 되지 않을 일들을 겪는다. 순수히 공학적인 접근으로 일을 했지만 예술적인 관점으로 인해 프로젝트가 중단이 되거나 없어지거나 공중분해되기도 한다. (음? 다 똑같은 말인가?) 게임 개발 속 숨은 영웅들의 이야기라는 부제를 가진 책. '피, 땀, 리셋'은 지나친 정신적 에너지 소모를 겪어본 사람들의 이야기들이 모여있다. 처음 읽을 때는 좀 불쌍한 사람들 이야기 정도. 그런데 읽을수록 마..

Enum Converter와 Enumerated 어노테이션
Spring 2022. 8. 19. 15:53

타입이나 상태를 구분하기 위해 Enum class를 사용한다. 그리고 enum값을 저장하기 위해 Enum Converter 혹은 Enumerated 어노테이션을 이용하게 된다. 이 둘의 차이는 무엇이며 어떤게 더 선호되는지 확인해보려고 한다. Enumerated 어노테이션 Enumerated 어노테이션은 원하는 필드에 추가하는 것만으로도 (DB와 같은)소스에 String값을 입력해준다. 물론 순서값을 입력해주는 Option인 ORDINAL로 입력이 가능하지만 의도치않게 enum값의 순서가 바뀌는 경우가 생기면 데이터가 꼬이기 때문에 권장하지 않는다. enum class UserType { NORMAL, ADMIN; } @Column(name = "user_type", length = 70) @Enume..

Event 처리는 비동기가 아니다?
Spring 2022. 8. 17. 13:25

비동기 처리를 위해서 이벤트를 발행하는 방식을 선택하는 경우가 있다. 나 역시도 그랬는데 사용하다가 궁금증이 생겼다. 그냥 Async 어노테이션을 달아 놓은 것과 EventListener를 적용한 것은 어떤 차이가 있을까? 결과부터 얘기하자면 모든 Event 처리 방식은 비동기가 아니다. 그것을 확인할 수 있는 테스트를 해보았다. 해당 테스트는 정아마추어님 블로그를 상당히 많이 참고했다. 테스트 전 준비 먼저 Event 모델을 만들었다. EventListener를 그냥 사용했을 때와 Asnyc 어노테이션과 함께 사용했을 때를 구분하기 위한 모델을 각각 만들었다. data class SampleEvent( val name: String, val email: String ) // 비동기용 data class..

재그지그 블로그의 대나무숲 슬랙 앱 따라하기
Dev Note 2022. 8. 1. 23:12

재그지그 블로그에서 대나무숲 슬랙 앱을 만든 것을 공유하였다. 사용해본 입장에서 '와우' 소리가 절로 나왔다. 블로그 글을 봐도 누구나 따라서 슬랙 앱을 만들 수 있어 보일 정도로 잘 정리되어 있었다. 하지만 나처럼 아무런 지식없이 맨땅에 헤딩하는 분들은 고생할 포인트가 여러군데 있다. 자바스크립트도 타입스크립트도 잘 모르고 헤로쿠를 처음 써보았고 Bolt.js는 처음 들어보았고 슬랙앱 하나 만들어본적 없는 필자의 재그지그 블로그의 대나무숲 슬랙앱 따라하기를 해보겠다. 시작하기 전에 반드시 재그지그 블로그를 먼저 읽어보길 바란다. 어디까지나 해당 블로그의 글과 재그지그 Github를 바탕으로 만든 것이기에 본 포스팅보다 원리나 정리면에서는 훨씬 뛰어나다. 여기는 단순히 따라하는 방법만 제시할 뿐. 지식적..

[JPA + Stream] 각 그룹의 최댓값을 가진 데이터만 보고 싶다면
Dev Memo 2022. 7. 31. 17:20

⚠️ 경고 ⚠️ 본 카테고리, Dev Memo는 필자가 깊게 다루기는 귀찮지만 궁금한 것들을 체험해보고 간단하게 기록을 남기는 공간입니다. 디버깅 노트, 써드파티 라이브러리 사용기, 버전 업데이트, 어이없는 실수, 오탈자 발견 등. 각종 시덥지 않은 내용이 들어 갈 수 있다는 점 참고바랍니다. (우헤헿) 일단 다음과 같은 환경을 갖춘 상태이다. 스프링부트 + JPA + Kotlin User와 Club 테이블은 양방향 조인 ID는 Auto Increment 다음은 요구사항이다. 클럽에 가입 신청 혹은 신청 승인된 User를 찾는다 특정 기간 내 가입 신청한 User들을 찾는다 해당 유저들은 클럽별로 묶는다 클럽별 가장 최근에 가입 신청한 User를 모아서 Return해준다 고민해보았다. 과연 Spring..

노션으로 다크모드 웹사이트 만드는 3가지 방법
Tool 2022. 7. 30. 21:54

노션(Notion)은 무료 버전으로도 충분히 많은 표현이 가능하기에 수많은 유저들이 이용중이다. 기본적으로는 노트툴이지만 외부에 공유를 한다면 웹페이지처럼 사용도 가능하다. 그런데 노션은 마크다운으로 작성이 된다. 마크다운은 레이아웃의 배경색을 변경하지 못한다. 물론 노션툴이나 앱에서는 다크모드를 제공하기에 검정색 배경의 테마를 이용할 수 있지만 외부에 공유되는 웹페이지는 마크다운만 옮겨지기 때문에 배경색이 하얀색으로 표현된다. 그렇다면 다크모드 공유를 포기해야 할까? 우회 방법이랄까. 방법이 있다. 외부 서비스를 이용한 2가지 방법과 직접 만드는 방법 1가지를 알려주겠다. Simple.ink Simple.ink는 노션을 바탕으로 정적 웹페이지를 만들어준다. 서비스 이름으로 도메인도 제공해줘서 노션의 긴..

스프링부트에서 쿠키(Cookie)를 구워보자
Spring 2022. 7. 28. 19:19

쿠키? 먹는거 그거? 크롬 브라우저를 열고 네이버에 접속해서 로그인을 한다. 그리고 새로운 탭을 열어서 네이버에 접속하면 로그인된 화면을 볼 수 있다. 이 상태에서 엣지나 웨일같이 다른 브라우저를 통해 네이버에 접속하면 해당 화면에서는 로그인이 되어 있지 않은 모습을 볼 수 있다. 당연하다고 생각했던 모습. 그런데 생각해보면 신기하다. 새로운 탭 화면과 새로운 브라우저 화면, 이 두가지 경우에 어떤 차이가 있길리 다르게 나타나는 것일까? 답은 쿠키(Cookie)에 있다. 쿠키는 일종의 파일이다. 유저가 통신 중에 본인을 인증하기 위해 클라이언트에 보관하는 파일이다. 저장된 쿠키를 서버에 전달해서 이 사용자임을 확인한다. 앞 예시를 떠올려보자. 크롬 브라우저에 쿠키가 저장을 할 수 있어서 새 탭으로 네이버..

이제는 기본서도 최신 정보가 업데이트 되어야 할 때 (이것이 안드로이드다. 개정 3판)
Study 2022. 7. 24. 21:16

한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다...만진심이 담겨있습니다. 허위 사실 유포는 😎일절 없음. 안드로이드 개발 서적을 고르는 기준 수많은 개발 서적이 있고, 그 중 베스트셀러도 있기 마련. 그 중에서도 하나를 고를려면 어떤 기준으로 골라야할까. 개발 분야는 짧은 기간에 많은 것들이 바뀐다. 트렌드부터 Deprecated되는 기술까지 여러 형태로 업데이트된다. 그래서 공부를 할 때 최신 정보가 맞는지 중요하다. 물론 기본서라면 기본서의 역할에 맡게 쉽고 충분한 설명이 포함되어야 한다. 그리고 그 기본서가 안드로이드 개발 서적이라면 '최신' 정보가 포함되어 있는지도 중요하다. 왜 그럴까? 위에서 보이는 것처럼 안드로이드는 수많은 API 버전이 존재한다. API 버전이 올라가면서 안드로이..

Mockito가서 몰디브 한 잔, 긔? (with Kotlin)
Spring 2022. 7. 20. 16:09

Mockito는 mocking framework 중 하나이다. Java 진영에서 가장 많이 쓰이는 목 프레임워크로 스프링이나 안드로이드 개발하는 분들이라면 들어봤을 수 있다. 간단하게 Mock이 무엇인지 Mockito가 무엇인지 조금만 다뤄보자. (참고로 여기서는 JUnit과 관련해서는 자세히 다루지 않는다.) Mock? Mockito? 목(Mock)이라는 단어는 개발 분야가 아니더라도 사용하는 곳이 많다. 실제 구현보다 가상 혹은 모의의 형태가 필요할 때가 있다. 간단한 테스트나 프로토타입을 공유할 때인데 이럴 때 Mock을 사용한다. 개발에서는 실제 객체를 만드는데 부담이 될 때 사용하는 모의 객체를 Mock이라고 한다. 테스트를 할 때 주로 사용되며 비용과 시간, 의존성 이슈에서 많은 이점을 가진다..

728x90
반응형