Skip to content

juneyr.dev

BLOG 블로그

Database

NoSQL 빠르게 알아보기

서론 mongoDB 스터디를 앞두고 있어, 상당히 빠르게 NoSQL 을 훑어야할 니즈가 생겼다. 마침 부교재로 <NOSQL: 빅데이터 세상으로 떠나는 간결한 안내서> 를 받았으니 이 안내서를 타고 한번 쭉 가보려고한다. 201…


Books, Career

그대들, 어떤 사다리를 오를 것인가

시니어 스터디를 마치며


Kubernetes

쿠버네티스안에서 pod 끼리 통신은 어떻게 전달되는 걸까

k8s 의 단순 사용자로서, 내가 했던 건 배포 시스템에 정의한 메니페스트를 통해 애플리케이션을 배포하고, 잘 뜬 pod을 확인하고, 서비스의 IP…


Postmortem

2023 년 회고

어떤 습관은 내 삶에 뿌리 내리기도, 어떤 것은 있는 줄도 없다는 듯이 사라지기도 한다. 분명한 건 그 모든 것이 흔적을 남기고 다음번에 추적과 연결을 시작할 때 쯤에 도움이 된다는 것이다. 그 생각을 붙들고 2024년을 시작하기 전 202…


Database, collation

ก 가 ก์ 랑 같다고? mysql 5.7과 8.0의 대표 collation 뜯어보기

mysql 5.7 과 8.0의 대표 collation 두 가지에 대한 고찰


Postmortem

기술글쓰기와 복잡한 관계입니다

글또 8기를 마치며


트위터가 볼 수 있는 트윗수를 제한한다고? rate-limit

서론 오늘 트위터를 들어가보니 꽤 난리가 나있었다. 일론 머스크가 트위터의 verified account (즉, 파란 체크 - 어느 시점부터 돈내고 받을 수 있게 바뀌었다.) 는 하루에 600…


SystemDesign

유일한 ID 생성기 설계 by 가상면접사례로 보는 시스템 설계 기초

서론 블로그 쓰기를 급하게 준비하려고 최근 궁금했던 디스코드는 어떻게 수조개의 메시지를 다룰까요 블로그를 보다가 snowflake 를 알게 되었다. snowflake 는 트위터에서 제안한 유니크한 id 생성기로, 분산시스템 상에서 id…


HTTP

HTTP 1-2-3 + HTTPS

서론 웹 성능 최적화 스터디를 참여하고 있는데, HTTP 의 역사가 나왔다. 머릿속에서 휘발되기 전에 하나의 개념으로 묶어놓는 편이 나에게 유리할 것 같아 정리하는 HTTP 1-2-3 그리고 HTTPS 까지! HTTP…


DB

Cassandra DB 간단하게 알아보기

서론 최근에 cassandra DB…


BE

10일안에 협업하는 최소의 웹 백엔드 만들기

서론 어느날, 불현듯, 갑자기, 비사이드 를 통해서 포텐데이를 신청했다. 비사이드는 IT…


JVM, GC

GC 알고리즘 + JVM 이 채택한 GC 취사선택해서 알아보기😋

서론 jvm 과 그 메모리 에 이은 JVM 의 GC 종류 정리다. 사실 이미 스프링 어플리케이션을 띄울 때의 스크립트를 주의해서 보면 GC 의 종류를 명시해준 걸 때때로 발견할 수 있는데, GC…


Java, JVM

JVM 과 그 메모리

서론 최근 성능테스트를 하면서, minor-gc 와 major gc 에 대해서 다시 한번 볼 기회가 있었다. 하다보니 조금씩 모자란 지식을 채워야겠다는 생각이 들어 적어보는 jvm, memory. 참고한 기준 문서는 java SE…


Infra, DNS

GSLB 는 LB 가 아니라 사실 DNS ver.2래..

들어가며 최근 회사 서버 구조를 보면서 낯선 이름을 듣게 되었다. ' GSLB ? 뭐.. 글로벌..로드...밸런싱...인가? 로드 밸런서 종류?' 라고 생각했고, 반쯤 맞았다. GSLB 는 Global Server Load Balancing…


Postmortem

2022 년 회고


Spring, Tomcat

Boot 없는 Spring 팀, Tomcat 설치하고 띄워보기

새로운 팀에서, 일부 모듈은 spring, 일부 spring boot 로 구현되어 있다는 점을 발견했다. 친절한 온보딩 가이드 덕분에 얼기설기 spring + tomcat 조합으로 spring 모듈을 띄웠지만, 매번 boot…


Spring, Cache

ehcache3, spring에 적용하기

서론 스프링에서 로컬 캐시를 적용할 때 항상 나오는 그 이름. ehcache ! 코드로 먼저 접하다보니, 영문도 모르고 ehcache.xml…


Postmortem

2021 회고

회고를 시작하면 작년의 회고를 본다. 개인적인 기록은 역시 작성자에게 제일 재미있는 법이어서, 재작년으로 넘어간다・・・ (끝나지 않음) 그러다 도달하게 되는 글이 201…


Jenkins, CI, Build

나와라 만능 jenkins

서론 jenkins 를 프로젝트 전반에 사용하고 있습니다. 제일 자주 사용되는 CI 부터, Spring Batch 까지도 Jenkins로 돌리고 있는데요. 최근 jenkins 취약점 으로 인해 jenkins를 업데이트할 일이 생기면서 jenkins…


Build, CI, Gradle

딱, 스프링만큼의 gradle

서론 gradle! 이 블로그로 이전한 뒤 첫 글이 gradle facts 였을 정도로 오랫동안 내 머리에 있었던 주제였다. 그러나 번번히 공부에 실패했었다. 그런데 최근 jar SDK…


Security

JWT, java에서 인증하기

서론 2018년, 인턴 프로젝트에서 github 인증 및 프로젝트 로그인을 위한 jwt를 발행했었다. 이때jwt 개념 자체를 몰라서, 글을 한번 썼었다. 참고: 토큰으로 토큰을 만들자 - pyjwt 이정도 공부였으면 충분할 줄 알았지만, jwt…


Grapheme, Database, Unicode, Encoding

글자수 세기의 딜레마, 이 글자의 길이는 DB 상에서 얼마일까?

서론 글자수를 센다는 것은 무엇일까? 이 글을 본 개발자라면 아마도 각자 언어의 length() 함수를 떠올렸을 수도 있겠다. length() 는 개발자가 글자를 세지않아도 빠르게 길이를 알려준다. 그런데 이 length…


Git, Ssh

깃헙 인증 id/pw 에서 ssh 로 변경하기

서론 Github 의 인증 시스템이, 기존에 가능하던 id/pw 인증 방식을 제거했습니다. 아이디-패스워드 방식은 해당 키만 알면 로그인할 수 있다는 점에서 보안적으로 약하다고 보았고, 이를 개선하려고 한 것입니다. 따라서 2021년 8월 1…


Nginx, DevOps, Server

nginx로 서버 점검모드 만들기

nginx, CIDR, ansible 버무리기


Postmortem

2020 년 넘겨보기

회고 열심히 쓰는 편..


Universal Link

유니버셜 링크, 딥링크... 이게 다 뭐야! 유니버셜 링크와 구현

히스토리 팀에서 유니버셜 링크 담당하시던 분이 휴직하시면서 이번 프로젝트에서는 어떻게 제공해야하는지 내용을 남기고 가셨다. 추적하면서 서버입장에서는 어떻게 해야하는 건지 다시 또 정리해보고싶다. updated…


Community

글또 4기가 끝났다.

글또 4기가 끝났다. 지난 2월 24일, 글또 4기 참가합니다 =) 라는 글로 시작해서 유효한 글을 약…


OS

하드웨어 스레드와 소프트웨어 스레드

서론 notice : 모던 자바 인 액션 관련 글은 책의 저작권 이슈를 우려해서 삭제했습니다. CompletableFuture 의 비동기 처리 를 공부하다가 비동기 작업을 다시 merge하는 작업, 즉 thenCompose 와 thenCombine…


Spring, Reactive Programming

Reactive Programming 101 : 리액티브 프로그래밍이 뭔가요

그날이 왔다. 여러가지 api 콜을 합쳐서 다시 하나의 응답으로 만들어 내보내주는 코드를 보는데, 이해를 전혀 못하겠는 때가.. 그래서 이번주는 Reactive Programming 101이다. 처음에 구현체로 내가 마주한 건 바로 Project…


Java

타입 속 타입 : Parameterized Type

List<T> 형태를 알아보자구


Nginx, Server

나는 nginx 설정이 정말 싫다구요

nginx 설정 nginx.conf와 conf.d를 알아보자


Vim, Blog

vim-wiki 새 머신에서 세팅하는 법

왜 vimwiki인가? vim이라고 하면 굉장히 어려워보이고, 나에게는 아직도 굉장히 어렵다. 그럼에도 서버 개발자로 길을 시작한 이상 vim은 넘어야할 산이었다. 언제까지 마우스를 만지작하며 GUI…


IDEA, CheckStyle, Clean Code

intelliJ, Checkstyle 과 formatter 셋업하기

서론 혼자만의 프로젝트든, 함께하는 프로젝트든, 기본적인 코드컨벤션이 있다면 코드의 가독성은 확 높아집니다. 그런데 이런 코드 컨벤션을 세워도, 매번 기억하거나 유의하기 어려울 때도 있죠. PR…


JPA, Java

transient : 두가지 사용례, 비슷한 의미

java에서도, JPA에서 볼 수 있다


Conference

We are just ordinary IT people 웨비나 요약

#2 나의 힘으로, 다른 나라


Life Hacks

팀에 기여할 수 없는 순간, 그래도 할 수 있는 것

기여하기 어렵다고요? 할일이 없다고요?


Serverless, Netlify

링피트 체커를 fauna로 만들어보자

fauna와 netlify 활용하기


Writing

글또 4기 참가합니다 =)

개발 블로그들을 구독하다보면 유난히 눈에 띄게 잘 쓴 글들이 보였습니다. 프로필을 보면 저와 같은 주니어 개발자인 것 같은데 수려하고 잘 정리된 글을 작성하는 모습을 보면 완전한 프로 ! 그 아래에는 가끔 '글또…


WebRTC

실시간 통화 어떻게 하는 거지 : WebRTC 기초

WebRTC 를 공부하기로한다. WebRTC가 뭔데 - 이름 그리고 비전 webRTC는 plugin-free web - Real Time Communication…


web

og tag를 적용했는데도 이미지가 안뜬다면

gatsby 블로그와 험난한 싸움중이다. 분명히 SEO 가 자동으로 적용되는 테마를 가져왔는데, 왜 작동이 안하는 것인지? 구체적인 문제상황은 글에 설정한 배너가 안떠요 였다. 시간이 좀 남아서 webrtc…


gatsby, web

jekyll to Gatsby 블로그👩‍🔧

jekyll 블로그를 gatsby 블로그로 옮기기


k8s, orchestration, Devops

쿠버네티스에 ImagePullBackOff 떠본적이 있다면

쿠버네티스 트러블슈팅


Postmortem

2019, 세번째 회고

회고를 작성하는 것이 벌써 세번째다.


Data, Database

Mysql 에서 unique 제약 삭제하기

DB 단에서 특정 두 칼럼의 조합이 유일하도록 하려면, unique contraint 를 걸어주면 됩니다. mysql에서 이 제약조건은 index로 표시되고, 이 index…


Algorithm

Maximum Subarray 최대 부분합을 푸는 방법 : 카데인 알고리즘 👩‍🏫

LeetCode를 시간이 날때마다 풀고 있습니다. 워낙 알고리즘에는 잼병이기도 하고, 생각의 폭을 넓히기 위해서 푸는데요. easy에 있는 Maximum subarray 를 풀게 되었습니다. 처음에는 효율이 굉장히 낮게 for…


Devops, Data

커맨드라인에서 json을 정제해봅시다 📋 : jq

안녕하세요, junebuug입니다. 어느날 저는 jenkins job을 구성하다가 PR 이 닫히면 jenkins job이 동작하는 걸 만들어야했습니다. 그런데 jenkins에서 자주 쓴다는 github pull request builder…


Data Structure

Trie 구조 츄라이🙆‍♀️

geohash 관련한 PR을 보고 있었는데, 다른 팀원분이 Trie로 접근해볼 것을 제안해주시더군요. Trie 자료구조, 분명히 입사 전에는 알고 있었는데 기억안나서 정리해봅니다. 😉 Trie 자료구조 🌴 어.. 어떻게 읽어야할까요? Trie…


Security

SSL이 모요

HTTPS의 S는 SSL이고.. SSL 인증서가 필요하고.... TLS…


Java

[번역] 자바에서의 예외처리

과거에 썼던 dev 지식 모음을 보다가 아직 업로드하지 않은 것이 있어서 올립니다. Exception의 이해에 꽤 도움이 되었어서, 원문을 보시면 더 좋을 것 같습니다. Exception Handling in Java: A Complete…


Devops, Server

웹서버, 웹 어플리케이션 서버 + tomcat 이란

이런 현대미술전시같은 이름의 블로그 포스트라니. 매번 찾아놓고 기억하지 못하는 주제를 가볍게 정리합니다. 서블릿이란 (Servlet…


Security, Spring

Spring Security 개념 잡기

Spring Security 업무에서 사용하고 있으면서도, 쉽게 정리하기는 어려운 것 중 하나가 spring security 였는데요. 간단한 예제로 spring security…


Batch, Spring, Data

처음 해보는 Spring batch, Tasklet 작성하기

매번 일반 API 만 하다가 처음으로 Spring Batch 를 작성할 일이 생겼습니다. 이럴 때를 대비해서 저장해둔 jojoldu님의 Spring batch 가이드 를 참고해서, 기본적인 내용을 학습하고 Tasklet으로 실제 Batch…


intelliJ, QueryDSL

QueryDsl intelliJ 루트 설정 안될 때 해결법

설정 하나만 켜면 된다


Java, Auth

Spring에서 HMAC-SHA256 인증해보기

이번에 외부 시스템과 연동을 진행하면서, 인증을 HMAC Signature 로 하게 되었는데요. HMAC이 가물가물해서 =) HMAC에 대한 간략한 소개와, Spring에서 어떻게 requestBody를 받아와서 HMAC Signature…


Java, Code Review

MIL(Monthly I learned) 4월 공유

TIL (Today I Learned) 는 매일 매일 배운 점을 적는 것인데요. 매일 매일 무언가를 지속해나간다는 건 참으로 힘든 일이네요. 그래도 다달이 하나쯤 공유하는 건 어렵지 않을 테니, 열심히 정리해보려고 합니다. DTO (Data…


Conference

NDC(Nexon Developer Conference) 2019, <FIFA 온라인 4> 서버 포스트모템 후기

발표자료는 올라올테지만, 가장 인상깊게 들었던 발표를 들으며 적었던 노트를 날것으로 (ㅋㅋ) 공유합니다. <FIFA 온라인 4> 서버 포스트모템 김에스더님 From EA Korea…


DesignPattern, Java

스트레티지 패턴 🌚

HEAD FIRST DESIGN PATTERN 을 정리합니다. 02 옵저버 패턴보기 0…


Redis

Redis 뭔지나 알고가자

프로젝트에서 like 를 Redis로 관리하고 있다. 관련해서 한번 짚고 넘어가려고한다. Redis? 기본적으로 Storage, 즉 저장소이다. 가장 큰 특징은 메모리 기반의 Key-value…


Java, Regex

JAVA url 매핑 정규식 공유

테스트를 8개 정도밖에 만들지 못했지만, 일단 원하는 바에 부합하는 정규식인 듯 하여 블로그에 작성해 둡니다. http나 https로 시작하는 경우에는 ://가 반드시 붙는다. Optional. www. 로 시작하는 경우가 있다. Optional…


JPA, Java

JPA 영속성 컨텍스트 정리

영속성 컨텍스트 JPA…


Java, Code Review

내받코리 1월,2월

이전에 내가 처음으로 받은 받은 JAVA 코드리뷰 모음 이라는 제목으로 글을 올렸었는데, 그 이후에도 이건 꾸준히 하면 좋겠다! 라는 생각이 들어서 또 다시 적습니다. 2월에는 Vue 공부도 조금했는데, Java…


Network, Zuul

Netflix Zuul - 요청을 다른데로 보내고 싶다면

Zuul 을 만나다 사건의 발단 서비스용 Stat 페이지를 운영툴에 붙이고 싶었다. 이 Stat 페이지는 vue 코드가, elastic search API를 찔러야하는 구조로 되어있고, elastic search…


FE, Javascript

Webpack과 babel이 뭐요

vue를 어설프게 써보려고, vue-cli 모듈로 프로젝트를 만들면 이런 설명부터 나온다. '그냥 디폴트 스펙(webpack & babel) 깔아줄까? 아니면 다른 모듈쓸래? ^_^' 물론 webpack이랑 babel…


Spring, Java

RestTemplate 말고 WebClient

가장 먼저 코드로 본 web 요청 인터페이스는 WebClient였고, 명확하고 직관적이여서 자주 썼다. 그런데 현재 프로젝트에서는 RestTemplate과 WebClient…


Spring, Annotation, Java

json을 펼쳐주는 @JsonUnwrapped

DTO DTO (Data Transfer Object…


Java, Spring, Annotation

Custom Annotation으로 유효성 검사하기

상황 어떤 값이 유효한지 검사를 해야 하는데, 해당 값은 entity나 DTO에서 받을 때 매번 유효성 검사를 해야한다. 이런 경우 대개 Validator를 사용해야하는데, Validator와 Annotation…


Java, Spring

Setter 설정안하고 set하기

상황 기존에 통합테스트로 돌고 있던 web client 테스트가 있다. 외부 API를 찔러보는 테스트인데, 이에 필요한 파라미터는 해당 web client 내부에서 가져오는 방식이다. 이때 무거운 통합테스트가 아니라, 직접 파라미터를 set…


Postmortem

2018. 회고

2017 회고를 쓰면서 2018에는..! 하는 마음이 있었던 것도 어제 같은데, 벌써 12월의 마지막 날이다. 시간 순으로 할까, 주제 순으로 할까, Good, Bad로 할까 고민했는데, 일단 주제순으로 가도록 한다. 졸업, 그리고 ..…


Java

Java8 Datetime 대.정.리

??: 준영님 이 Date 무슨 형식으로 보내야해요? 그동안은 date는 무조건 서버에서 만들어서 넣어주는 것이어서 몰랐는데, date를 클라이언트(iOS앱) 에서 받을 일이 생겼다. DTO에는 해당 필드(createdDate…


Web, CORS

CORS 맨날 봐도 모르겠어

맨날맨날 봐도 맨날 맨날 헷갈리니까 정리. 왜 웹에서 API 서버에 요청 안가는 거에요? 😭 웹 개발 시에 자바스크립트로 야심차게 외부 서버 경로로 ajax 요청을 날리면 요청이 실패한다. 요청한 리소스, 즉 서버에서 내려준 응답에 Access…


Web, Storage

쿠키, 로컬 스토리지, 세션 스토리지 5초만에 알기

참고 https://www.zerocho.com/category/HTML&DOM/post/5918515b1ed39f00182d3048


Java, Lambda

자바 8의 함수형 인터페이스는 뭐에요

자바! 학교에서도 지속적으로 배우는 가장 익숙한 프로그래밍 언어 중 하나이다. 졸업때까지(2018) 만 해도 학부에서 파이썬이나 go…


Java, Code Review

내가 처음으로 받은 Java 코드리뷰 모음

같은 실수를 반복하는 멍청이는 되지말자는 의미에서ㅎㅎ PR…


Java

URL Encoding과 Java로 URL 뜯기

별것아닌거 같은데 삽질을 했던게 바로 어제다. redirect_uri 를 인코딩해서 내리는 게 금방 될 줄 알았는데!(그래서 url in url 형태를 막고 브라우저가 명확하게 인식하도록 하는 것) 삽질 과정을 정리해본다. 결론: Spring…


Data

데이터베이스 기초 - 정규화와 무결성

DB 시간에 어려워서 대충 들은 부분이라 상당히 후회된다. 스키마 작성하는 중에 계속 정규화 얘기와 무결성 얘기가 오가게 되어 정리를 다시 꼭 한번 짚고 넘어가려고 한다. 이상 현상(Anomaly…


Hadoop, Data

하둡 이란


Auth, Kerberos, Security

커버로스 Kerberos 프로토콜 이란

커버로스 이미지로 알아보기


Generic, Java

Java Generic 자바 제네릭

Generic 개념을 제대로 정의하지 않고 넘어가니 계속해서 의문점이 생기는 경우가 늘어난다. ArrayList<String> 으로만 접한 Generic을 좀더 잘 정의해보도록 한다. Generic…


Test, Spring, Java

스프링에서는 어떻게 테스트하나요?

단위테스트는 뭔가요? 외부에 의존성이 없는 소프트웨어 단위의 테스트. 단위테스트는 빨라야한다. Working Efficiently with Legacy Code 의 저자는 테스트 실행시간이 0.1초가 넘어가면 단위테스트가 아니라고 말했다. BDD…


JPA, Java

JPA 가 뭔데 쓰는건가요?

Spring을 공부하던 중에, 멘토님께서 JPA의 중요성을 강조해주셨습니다. Django 는 ORM 으로 간단하게 DB를 다루고 쓸 수 있었는데, Spring에서는 어떤 식으로 DB…


Spring, Library, Java

Actuator 사용하기

Spring-boot 를 intelliJ에서 사용하면, 설정 시에 Actuator 를 사용할 수 있습니다. actuator…


Code Review

Code Review in Google

Modern Code Review: A Case Study at Google 위 문서를 요약 - 번역합니다. INTRODUCTION Peer Code Review…


npm, Web

NPM INSTALL SUDO 일때도 안돼요!

iterm 테마 한번 깔려면 매번 npm 과의 싸움을 벌이게 됩니다. 왜 나는 sudo 권한으로 npm install 을 설정해도 permission…


Logger, Spring, Slf4j

Logger in Spring

Logger SLF4j 를 일단 기본 로깅 파사드로 생각하고 말해보자. Log4j 는 두가지 버전이 있다. Log4j 1, Log4j 2 Log4j 1을 보완하려고 나온 Logback 이 있다. 현재 우리 프로젝트 에서는 SLF4j…


Git

Rebase와 Merge

협업의 git


Serializable, Java

왜 직렬화는 직렬화일까

직렬화 이름이 궁금해


Java, Spring, Effective java, clean code

좋은 JAVA 생성자를 만드는 법[EFFECTIVE JAVA 2E]

생성자는 어떤 방식으로 만들어야할까?


Spring, Java, AOP

AOP(Aspect Object Programming) 이란

Spring에서의 AOP


Java

Effective Java 2E 정리하기 1편

자바를 좀더 잘 쓰려면 어떻게 해야할까


network, gRPC

gRPC 뽀개보기

RPC도 모르는데 gRPC는 뭐야?


go

golang 기초

gopher


wtm

Women techmakers 2018 운영진 리뷰

가장 가까이, 빠르게


python, django, csv

CSV파일을 읽어서 django 모델을 bulk_create하기

엑셀로 관리하던 DB를 이식해오자


python, jwt, token

토큰으로 토큰을 만들자 - pyjwt 사용기

json web token 너 부르기 좀 껄끄럽다


Postmortem

2017 회고

도약을 위한 한해


etc

간헐적 코딩

마음 다잡기


Django, Python

Django에 가상환경이 없다면

pycharm에서 venv 편하게 설정하기


우아한테크캠프, 후기

넌 강해졌다, 돌격해!

우아한테크캠프를 마치며


iOS, firebase, swift

iOS에서 Firebase 이중 필터하기

험난한 RealtimeDatabase 적용기


mysql, database

Mysql 기본 쿼리 공부하기

mysql 기본


AWS, ubuntu, mysql, CLI

Ubuntu LTS에 mysql 설치하기

mysql, CLI로 설치하기