전체 글

개발, PO, PM, 기획과 관련된 서비스 관련 업무에 관심이 있습니다. 또한 성장,교육과 관련된 주제에 대해서도 관심이 많습니다. 티타임을 좋아하는 사람으로써, 혹시 티타임에 관심이 있으신 분은 ksy90101@gmail.com로 메일 보내주시면 감사하겠습니다 :)
· 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..
jest 27 → 28 자충우돌 upgrade 서론 최근 회사에서 사용하던 jest를 27 버전에서 28로 업그레이드를 하는 작업을 진행하였습니다. 작업을 하면서 이전 문서를 확인해야 하고, 최신 지원 하는 기능들을 사용하기 위함이였습니다. 마이그레이션 문서 : https://jest-archive-august-2023.netlify.app/docs/28.x/upgrading-to-jest28/ Breaking change : https://jest-archive-august-2023.netlify.app/blog/2022/04/25/jest-28 주요 Featrue Github action reporter github action에서 CI를 실행할 시, File Chanege에서 실패한 테스트를 리포팅..
· Backend/Java
서론 현재 프로그래머스 백엔드 데브코스 5기 멘토를 진행하던중, 아래와 같이 멘티의 질문이 있었다. Java11까지만 해봤기 때문에 toList()에 대해서 잘 알지 못한다고 생각해 아래와 같이 정리를 해봤다. stream의 최종연산을 List로 반환하기. stream의 최종연산을 List로 반환하는 방법은 Java11에선 아래와 두개가 있었다. List collectorToList = numbers.stream() .filter(it -> it % 2 == 0) .collect(Collectors.toList()); List collectorToUnmodifiabledList = numbers.stream() .filter(it -> it % 2 == 0) .collect(Collectors.toUnm..
토스 플레이스 10월 IMPACT NIGHT 후기 운이 좋게, 토스 플레이스 10월 IMPACT NIGHT라는 행사에 참여를 하게 되었다. 처음으로 토스가 사용하고 있는 공간에 갔는데, 전반적으로 깔끔했던거 같다! 세션은 아래와 같은 순서로 진행이 되었다. 리더님의 토스플레이스에 대한 설명(비전 세션(Why Offline)) 토스플레이스 제품을 사용해보는 시간 관련 직군(저는 백엔드개발자여서 백엔드쪽으로 배정되었습니다.) 현업자분과의 커피챗 참고로 저녁시간에 진행됨에 따라 퇴근 후 샌드위치와 유뷰초밥, 과일 세트를 식사로 제공해주고 커피를 무제한으로 제공해줘서 든든하게 들었던거 같습니다! 아래에서 간단하게 후기를 작성해보도록 하겠습니다. 리더님의 토스플레이스에 대한 설명(비전 세션(Why Offline)..
· Backend/Java
Java String의 isEmpty와 isBlank 서론 String 타입에서 해당 값이 빈 문자열인지 체크하는 메서드가 두개가 있다. isEmpty와 isBlank의 차이점을 알고, 각각 어느 상황에 써야 하는지 이해하는 시간을 가져보려고 한다. 일단 결론부터 말하자면 whiteSpace(공백)과 tap(탭)까지 포함해서 빈 문자열로 인정할것인가 이다. isEmpty 실제 자바 구현체를 보면 아래와 같다. /** * Returns {@code true} if, and only if, {@link #length()} is {@code 0}. * * @return {@code true} if {@link #length()} is {@code 0}, otherwise * {@code false} * * @..
· 회고
멘토링 교육 발표 - 스터디는 왜 할까? 배경 안녕하세요 저는 프로그래머스 백엔드 데브코스 5기 멘토를 맡고 있는 마르코입니다. 1기~3기를 진행하면서, 매번 스터디에 대한 질문들이 있었고, 그것들을 멘티분들에게 저의 경험을 공유하기 위해 발표를 진행하였습니다. 그에 대한 회고를 진행해보려고 합니다. 발표자료 https://drive.google.com/file/d/1ekXc23VyzmUsJeOc2a6eHdZjnFZn9LlG/view?usp=drive_link 간단한 내용 요약 저는 지금까지 4년간 스터디를 직접 리딩도 하고, 스터디원으로 참여도 하면서 배운 점들이 많습니다. 그런 부분들을 여러분들에게 공유하고 싶어 이 발표를 진행하였습니다. 가장 전달하고 싶은 부분은 아래와 같았습니다. 스터디를 한번도..
1.9.0 언어 업데이트 release note What's new in Kotlin 1.9.0 | Kotlin Enum 클래스 entries 속성 values()의 함수를 entries라는 속성으로 대체하였습니다. values()의 단점은 호출할때마다 새로운 인스턴스를 매번 할당해야 하기 때문에 성능 문제로 이어질수 있다는 단점이 있습니다. 모든 호출마다 Mutable Array 복사본을 생성해 반환. 아울러 불변이 아니기 때문에, 수정이 가능한 부분이 있었습니다. enum class Direction { NORTH, SOUTH, EAST, WEST } fun main() { val directions = Direction.values() directions.forEach { println(it) } ..
Nuxt3에서 variables 전역으로 설정하자. 서론 기본적으로 스타일링을 할때, variables를 설정하고 전역으로 설정할수 있게 한다. Nuxt 3.6.5 버전 기준으로 해당 글은 작성되었다. 여기서 기본적으로 알아둬야 하는것은 Nuxt3는 기본적으로 vite를 사용한다. Scss 파일 생성하기. 해당 경로가 정답은 아니다. 경로는 편한대로 작성한다. // 브레이크 포인트 변수를 한곳에 모아두기 위해 따로 파일을 만든다. // /assets/styles/variables/_breakpoints.scss $xs-down: 'max-width: 375px'; $md-down: 'max-width: 768px'; $mobile: $xs-down; $tablet: $md-down; // 모든 변수 파일..
Seyun(Marco)
Enthusiastically, Steady, Slowly