전체 글

개발, PO, PM, 기획과 관련된 서비스 관련 업무에 관심이 있습니다. 또한 성장,교육과 관련된 주제에 대해서도 관심이 많습니다. 티타임을 좋아하는 사람으로써, 혹시 티타임에 관심이 있으신 분은 ksy90101@gmail.com로 메일 보내주시면 감사하겠습니다 :)
· Backend/Java
💡 원본 글 : https://inside.java/2023/12/17/sip093/ Java 18과 21 사이에는 많은 새로운 기능이 추가되었지만, 일부 기능은 중단될 예정입니다. 더 이상 사용되지 않거나 제거된 몇 가지 주요 기능에 대한 대안을 검토해보도록 하겠습니다. Finalization Java 18 ~ 21 기간 사이에 더 이상 사용되지 않을 큰 기능은 finalization은 더 이상 사용되지 않는다는 것입니다. 이는 Java 18의 일부 변화였으며, JEP 421에서 다룹니다. removal of finalization이란? Java의 removal of finalization은 Java 11부터 도입된 기능으로, finalize() 메서드를 제거하는 기능입니다. finalize() 메서드..
· Backend/Ruby
[번역] What’s new in Ruby 3.3(Ruby 3.3의 새로운 기능) 💡 원본 글 : https://nithinbekal.com/posts/ruby-3-3/ What's new in Ruby 3.3 Every year on Christmas day, the Ruby core team releases a new version of Ruby. This year will likely be no different, and we can expect Ruby 3.3 next week. This year, the primary focus of the release is performance and developer experience. There aren’t nithinbekal.com 매년 크리스마스에..
Nuxt3.js에서 scss로 font를 적용하기 (IBM Plex Sans 폰트 적용) 서론 최근 노마드 커뮤니티 서비스를 사이드프로젝트를 하면서, 디자이너 분이 선택한 폰트인 IBM Plex Sans 를 웹폰트가 아닌 일반적인 woff 파일을 받아서 처리하는 방식에 대해서 선택하였고, 그걸 작업한 내용을 공유드릴려고 합니다. 실제 nuxt.js에서 웹폰트를 쓰는 방법은 Nuxt.js config를 통해 웹폰트를 쉽게 적용해보자. 폰트 다운로드 해당 폰트는 https://github.com/IBM/plex/tree/v5.0.0/IBM-Plex-Sans-KR/fonts/complete 해당 주소에서 다운로드 받을수 있습니다. hinted vs unhinted 두가지의 차이를 알기. 위해서 Hinting이..
공개하지 말아야 하는 값을 암호화 해보자. (jasypt를 사용하기.) 서론 최근 노마드 커뮤니티 사이드 프로젝트를 진행 하던 중에, 프로덕션 DB 연결하기 위한 URL, name, password를 application.yml에 넣어야 하는데, 깃헙으로 코드를 관리하고 있던 차라 단순히 올리기가 어려운 문제가 있었습니다. AWS의 Parameter Store와 같은 기능을 쓰면 좋지만, 현재 초기 단계이고 빠르게 서버 구축을 해두고 계속해서 배포하면서 QA를 진행하고 MVP를 구현해야 하는 단계에서 Parameter Store를 사용하기 보단, 다른 방법을 사용하는것이 좋겠다. 라고 생각해서 검색을 하다가 jasypt라는 라이브러리를 찾게 되었고 해당 라이브러리로 적용한 방법을 공유합니다. 관련 라이브..
프로젝트에 Kotlin의 컨벤션을 지키기 위해 Ktlint를 사용해보기. 서론 최근 노마드 커뮤니티 사이드프로젝트를 진행하면서 학습 및 새로운 경험을 하기 위해 백엔드 언어를 Kotlin으로 채택하여, 개발을 시작하게 되었습니다. 현재는 1인 개발이지만, 초기에 컨벤션을 잘 지켜두기 위해 Ktlint를 적용한 이야기를 해보려고 합니다. ktlint란? An anti-bikeshedding Kotlin linter with built-in formatter. 포맷터가 내장된, 바이크셰이팅 방지용 코틀린 린터입니다. cf) Anti-bikeshedding이란? 사소함의 법칙이라고 불리우는, 영향력이 미미하거나 중요성이 없는 항목에 불균형적인 시간을 소비하는것을 말합니다. 즉, 작은 문제에 집착하면서 시간을 ..
var가 있는데 const, let은 왜 나왔을까? 서론 JavaScript에선 변수를 정의할수 있는 예약어가 총 3개가 존재한다. 옛날엔 var를 모두 사용했지만, 최근에 const와 let이 추가되면서 총 3개의 방식이 생겼는데, 왜 새롭게 const, let이 도입되게 되었고, 각 차이점등에 대해서 알아볼 예정입니다. 과거의 var var의 문제점은 세가지가 있었습니다. 가변 - 정의된 변수를 변경할수 있었음. var number = 10; consloe.log(10); # 10 number = 20; consloe.log(20); 함수 scope const a = () => { if(true) { var number = 10; } console.log(number); } a() # 10; 호이스팅..
Spring JPA의 @Table 어노테이션에 대해서 알아보자 - name을 어떻게 매핑하는가? 서론 Entity와 Table을 매핑하기 위해 사용하는 어노테이션은 @Table 어노테이션 입니다. 실제 @Table 어노테이션이 어떤 역할을 해주는것인지, 또한 각 속성값을 어떻게 동작시키게 되는지에 대해서 알아볼 예정입니다. 코드를 살펴보다가, 대체 @Table 의 name은 어떻게 매핑이 되는건지?에 대한 궁금증이 생겨서 그걸 중점적으로 이야기를 나눠보도록 하겠습니다. 어노테이션 코드 살펴보기 package jakarta.persistence; import java.lang.annotation.Target; import java.lang.annotation.Retention; import static j..
· Backend/Ruby
ruby의 ?(Question Mark / Boolean)의 의미 서론 루비를 사용하다 보면, 메서드에 ?가 붙여 있는 경우를 많이 보게 됩니다. ? 를 붙이는 이유와 어떤 변경점이 있는지, ruby의 구현되어 있는 메서드들을 간단히 살펴보는 시간을 가져볼 예정입니다. ? 를 붙이는것은 Question Mark라고 하지만, 실질적으로 메서드에 붙어 있다면 Boolean Methods라고 많이 합니다. method에 ? 가 내포하는 의미 일단 한마디로 정의한다면 boolean methods(논리 메서드) 라는 의미를 가지고 있습니다. 쉽게 생각하면 boolean이 return되는 메서드입니다. Java에서는 boolean을 의미할때 is_ prefix를 많이 사용하게 되는데요. 루비에선 ? 를 뒤에 붙임으..
· Backend/Ruby
ruby의 !(Exclamation mark / Bang)의 의미 서론 루비를 사용하다 보면, 메서드에 ! 가 붙여 있는 경우를 많이 보게 됩니다. ! 를 붙이는 이유와 어떤 변경점이 있는지, ruby의 구현되어 있는 메서드들을 간단히 살펴보는 시간을 가져볼 예정입니다. ! 를 붙이는것은 Exclamation Mark라고 하지만, 실질적으로 메서드에 붙어 있다면 Bang Methods라고 많이 합니다. method에 ! 가 내포하는 의미 일단 한마디로 정의한다면 dangerous methods(위험한 메서드) 라는 의미를 가지고 있습니다. 대체 뭐가 그렇게 위험하길래 ! 라는 mark까지 만들었고, 이걸 위험하다라고 경고를 준다는것일까요? 첫번째 이유는 해당 메서드를 사용한다면 원본 객체가 수정된다는 의..
· Backend/Ruby
ruby의 배열내의 카운트를 세는 법 서론 최근 어느 로직을 작성하는데, 배열내의 두개 이상의 값의 갯수를 세어야 하는 케이스가 있었다. 각각에 대한 갯수를 세면 쉽지만, 그렇게 되었을 경우 순회를 2번이상 돌아야 하기 때문에 데이터가 많다면 성능상 좋지 않다고 판단하여, 다른 방법이 있을지 찾아보았다. 기본 count 기본적으로 아래와 같이 코드가 있다고 해봅시다. arr = [1,1,1,2,3,3,4,4,4,4,4,4,5,5,5,5,5] arr에서 1의 갯수와 5의 갯수를 구하기 위해선 아래와 같이 코드를 작성하게 됩니다. arr.count(1) # 3 arr.count(5) # 5 이렇게 하면 두번의 계산이 있어야 하며, 더 추가되었을때 코드가 계속해서 추가되어 불편함이 있을수 있습니다. 기본 fo..
Seyun(Marco)
Enthusiastically, Steady, Slowly