전체 글

개발, PO, PM, 기획과 관련된 서비스 관련 업무에 관심이 있습니다. 또한 성장,교육과 관련된 주제에 대해서도 관심이 많습니다. 티타임을 좋아하는 사람으로써, 혹시 티타임에 관심이 있으신 분은 ksy90101@gmail.com로 메일 보내주시면 감사하겠습니다 :)
Nuxt.js config를 통해 웹폰트를 쉽게 적용해보자. 서론 Nuxt의 애플리케이션의 모든 페이지에 같은 폰트를 다운로드 받아서 적용하는 작업을 해볼 예정입니다. 손쉽게 Configuration을 통해 가능합니다. 테스트해볼 폰트는 google IBM Plex Sans font를 이용해볼 예정입니다. 참고로 해당 예제는 nuxt3로 진행하였습니다. nuxt3 옵션 nuxt3는 nuxt.config.ts 파일을 이용해 옵션을 설정할수 있습니다. app 공식문서 : https://nuxt.com/docs/api/configuration/nuxt-config#app app 전반의 옵션들을 설정하는 키값입니다. head 공식문서 : https://nuxt.com/docs/api/configuration/n..
서론 도커를 사용해 MySQL을 띄우는 작업을 해볼 예정입니다. docker-compse.yml을 이용해 협업자에게도 같은 환경을 제공해줄수 있다. 도커를 사용하는 이유는 팀워크에서의 이점이 있기 때문이다. 프로그램은 버전에 따라 많은 차이점을 가질수가 있다. 다른 버전을 쓰면 다른 협업자에겐 오류가 나는 경우도 있다 보니, 그런 부분을 맞추기 위해 docker를 사용해 컨벤션을 지켜본다. docker-compose 여러 개의 컨테이너로부터 이루어진 서비스를 구축, 실행하는 순서를 자동으로 하여, 관리를 간단히하는 기능이다. compose 파일을 준비하여 커맨드를 1회 실행하는 것으로, 그 파일로부터 설정을 읽어들여 모든 컨테이너 서비스를 실행시키는 것이 가능하다. MySQL을 위한 docker-comp..
IntelliJ IDE에서 Spring Initializr를 이용해 프로젝트를 생성해보자. 서론 이 글은 Intelli J를 통해 Spring 프로젝트를 생성해보는 글입니다. Spring 프로젝트를 만드는 방법은 여러가지 있지만, 간단히 만들어 볼 예정입니다. 단계 IntelliJ IDE를 설치를 진행합니다. 설치는 IntelliJ IDE를 실행합니다. 위 사진 페이지에서 New Project를 클릭합니다. 그리고 왼쪽 Generators에서 Spring Initializr를 클릭합니다. 위 사진의 각 값들을 채워넣습니다. Name: 프로젝트 이름 Location: 로컬 내에 저장할 경로 Language: 사용할 언어 Type: Build 도구 선택 Group: 패키지 그룹 Artififact: 프로젝트..
· Backend/Ruby
Numeric의 zero? & positive? & negative? Numeric 루비의 숫자 타입으로 숫자인 경우에 Numeric Class가 됩니다. to_i로 integer로 변경하면 Numeric 메서드를 사용할수 있습니다. cf) nil을 to_i로 하면 어떻게 되는가? nil.to_i // 0 혹시라도 zero? & positive? & negative? 메서드를 사용할때, null safe를 해야할 경우 nil.to_i를 하는것도 방법임. 그러나 zero?인 경우에 true가 나오기 때문에 nil이 0이라는 조건 하에 사용해야함. zero? APIdock 메서드명에서 보이다 싶이, 해당 숫자가 0인지를 체크하는 메서드 입니다. 구현 코드 static VALUE num_zero_p(VALUE..
dicts의 get() 메소드와 default 인자 # The get() method on dicts # and its "default" argument name_for_userid = { **382**: "Alice", **590**: "Bob", **951**: "Dilbert", } **def** **greeting**(userid): **return** "Hi %s!" % name_for_userid.get(userid, "there") >>> greeting(**382**) "Hi Alice!" >>> greeting(**333333**) "Hi there!" dictionary 딕셔너리 타입은 immutable한 키(key)와 mutable한 값(value)으로 맵핑되어 있는 순서가 없는 집합..
FIRST 원칙 FIRST 원칙이란? 클린코드 책의 저자인 Bob Martin이 처음으로 제시한 규칙 이 규칙의 목적은 효율적이고 좋은 단위 테스트를 하기 위함 아래와 같이 5가지의 요소로 이루어져 있음. 빠르고(Fast) 독립적이고(Independent) 반복가능하며(Repeatable) 자체 검증가능하며(Self-validating) 철저하고 적시에(Thorugh & Timely) Fast 유닛테스트는 빠르게 실행되고 빠르게 결과를 알아야 한다는 의미. 빠르게 하기 위해선, 테스트 케이스의 단위가 최대한 작게 작성. 또한, 빠르게 단위테스트를 진행하기 위해 실제 서버나, DB와 통신하지 않고 Mock(가짜 데이터)를 이용. 즉, 실제 테스트를 하고 싶은 부분만 잘라서 테스트를 하는것이 중요함. Ind..
Django Improvements - Part 3: Frontend Optimizations(장고 성능 향상 - Part 3: 프론트엔드 최적화) Django 애플리케이션 성능 향상에 관한 이전 시리즈에서는 데이터베이스와 코드 최적화에 중점을 두었습니다. 3부에선 프론트엔드 성능 향상 방법에 중점을 두도록 하겠습니다. Minification(축소) Put Javascript Files at the bottom of the Page(페이지 하단에 자바스크립트 파일 배치) Http performance(HTTP 성능) Caching(캐시) CDN systems 성능 속도 측정 모든 사이트 최적화의 첫번째 단계는 속도를 측정해 벤치마크를 얻는것 입니다. Google Page Insights는 웹 사이트가 모..
Django 성능 향상 - Part2: 코드 최적화 Django Performance Improvements - Part 2: Code Optimization(Django 성능 향상 - Part2: 코드 최적화) 다음으로 소개할 글은Sentry 및 Python용 애플리케이션의 Profiler(프로파일러를 사용해 서비스를 개선하는 방법을 설명합니다. 이 게시물을 확인하여 Sentiry의 향후 애플리케이션 및 모바일 애플리케이션의 프로파일링 제인을 확인해보 긴급한 문제를 더 빨리 해결할 수 있도록 성능 모니터링에 대해서 투자하고 있습니다. 프로파일링을 처음 접하는 사람들을 위해 애플리케이션 프로파일러는 주어진 작업에서 발생하는 모든 단일 호출을 캡처해 성능 모니터링 데이터로 사용합니다. 아래에서 읽을 수 있..
Django Performance Improvements - Part 1: Database Optimizations(Django 성능 향상 - Part1: 데이터베이스 최적화)Django 프로젝트에서 최적화의 주요 목표는 시스템 리소스를 최대한 활용하여 데이터베이스 쿼리를 빠르게 수행하여 프로젝트가 실행하게 하는 것입니다. 적절히 최적화된 데이터베이스로 응답시간을 줄여 더 나은 사용자 경험을 제공합니다.이 4개의 시리즈에선 Django 애플리케이션의 다양한 영역에서 최적화 하는 방법을 배우게 됩니다.이 파트에선 데이터베이스를 최적화하여 Django 애플리케이션의 속도를 향상시키는 것에 중점을 둡니다.쿼리를 이해하기QuerySet이 어떻게 동작 하는지 이해하면 더 좋은 코드를 작성할 수 있습니다. 최적화 ..
NamedRoute의 _path vs _url 서론 RubyOnRails는 NamedRoute라는 쉽게 경로를 작성할 수 있는 방법을 제공합니다. # In config/routes.rb root to: 'blogs#index' # would recognize http://www.example.com/ as params = { controller: 'blogs', action: 'index' } # and provide these named routes root_url # => 'http://www.example.com/' root_path # => '/' routes를 작성할때 as라는 옵션을 제공해줘서 커스텀도 가능합니다. # In config/routes.rb get '/login', to: 'acc..
Seyun(Marco)
Enthusiastically, Steady, Slowly