본문 바로가기

분류 전체보기172

JDBC, 필요한 만큼만 알아보기 JDBC, 뭐 하는 거야?JDBC (Java Database Connectivity)는 Java에서 DB에 연결하기 위한 API입니다. 조금이라도 복잡하고 유용한 Application을 만들려면 DB에 연결하는게 필수인데 이를 위해서는 크게 다음과 같은 과정을 따릅니다.DB와 연결 (TCP/IP를 맺고, 암호화 정보 전달하고 등)SQL문 전달(필요하다면) Transaction 처리결과를 받아서 처리 문제는 이 과정이 DB 마다 모두 조금씩 다르다는 겁니다... 새로운 DB를 쓸 때 마다 각 DB의 특성을 공부해서 이 과정을 진행해야 한다면 지옥이 따로 없겠죠? 그렇기 때문에 JDBC라는 표준 API를 제공하고, 각 DB가 이 JDBC를 구현해서 개발자는 JDBC의 사용법만 알면 Application에서 .. 2024. 5. 5.
형식주의 (Formalism), 수학의 모든건 현실에 있지 않은데, 그렇다면 수학은 뭘까? 수학적 형식주의 소개형식주의는 수학의 이론이라기 보다는 철학적 입장입니다. 일반 철학에서 말하는 형식주의는 다른 뜻이 있는거 같은데 (검색해 보니 칸트나 윤리학이 나오더라구요 🫠) 수학철학에서는 약간 다른 의미를 가지고 있습니다.처음 초등학교 떄 수학을 배우면 실세상의 센다라는 개념을 추상화 한걸 숫자라고 한다고 배웁니다. 실제로 숫자는 고대에서 일상생활에서 자주하는 세는 행동을 추상화한 거에서 나왔을 수 있습니다. 하지만 이렇게 생각하면 이상한게 몇 개 생깁니다. 음수는 센다라는 개념에서는 나올 수 없습니다. 꼭 센다에서 벗어나서 음수가 일상생활에 쓰이는 곳이 많다면 허수는 어떨까요?실수나 초월수도 정확한 해당 값이 정말로 현실에 있다고 말할 수 있을까요? 즉, 수라는 개념을 떠올리는데는 현실의 어떤.. 2024. 5. 2.
📈 스톡옵션을 받으셨나요? 관련 용어/개념 알아보기 스타트업이나 IT 기업에 다니게 된다면 흔히 스톡옵션을 받게 됩니다. 스톡옵션... 단순히 주식을 준다고 생각할 수 있지만 관련 대화를 들어 보면 외계어로 가득차 있어 알아 듣기가 힘들 수 있습니다. 재직 6개월 후 그랜트 되고 클리프 2년에 반 베스팅, 클리프 3년에 나머지 베스팅 할 수 있어요 이 글을 끝까지 읽으시면 이 말을 이해하실 수 있고, 스톡옵션이 대충 어떤 건지 아실 수 있습니다! 🐜 옵션이 애초에 뭘까? 옵션은 파생상품입니다. 파생상품은 어떤 자산(기초자산)에서 파생돼 나온 계약을 말합니다. 즉, 옵션은 계약서에 사인하고 효력이 생기는 계약(약속)입니다. 뭐를 약속하냐면 기초자산을 얼마에 사거나 팔 것인지를 약속합니다. 이렇게 말하도 와 닿지 않으시죠? 옵션을 왜 사고 팔까요? 여러분이 .. 2024. 2. 26.
무중단, 카나리 배포 환경에서 DB Schema 수정하기 문제 상황 자주 있는 상황은 아니지만 DB의 Column을 수정해야 할 일이 있습니다. 굳이 왜 수정해야 하나? 어차피 이름만 다른거 아니야? 하실 수 있지만 이름과 사용 용도가 다르면 장기적으로는 인지 비용이 높아져 팀 전체의 자원이 더 많이 들게 됩니다. 무중단의 핵심은 이 작업으로 인해 에러를 만나는 유저가 1명도 없어야 한다는 것입니다. 그럼 가장 먼저 떠올리는게 DB Column 변경과 배포를 딸깍딸깍 동시에 진행하면 되지 않을까 생각할 수 있습니다. 솔직히, 팀 리소스가 부족한 상황에서는 좋은 해결책이라 생각합니다. 새벽 시간 트레픽이 없을 때를 틈타 작업하면 큰 문제가 없을 수도 있습니다. 하지만 서비스의 중요도가 높거나 카나리 배포를 하고 있는 환경에서는 이것도 어렵습니다. 이 상황에서 정.. 2024. 2. 25.
🤑 연봉 관련 용어 총 정리! (계약연봉, 원천 징수액, 추가수당, 인센티브, IC, TC) 취업한지 얼마 안 됐을 때 들었던 각종 연봉 관련 용어들을 떠올려 보면, 굉장히 낯설고 어지러웠습니다. 저 같이 이런 용어들에 익숙하지 않은 분들을 위해 연봉 관련 기초적인 용어들을 정리해 보았습니다! 추가로 IT 업계에 계신 분들이라면 IT 선진국인 미국의 얘기를 들을 일도 많아 미국에서 쓰는 연봉 관련 내용도 정리했습니다. 한국에서 많이 쓰는 연봉 관련 용어 용어 설명 계약연봉, 기본급 근로 계약서에 있는 근로시간 만큼 딱 근무했을 때 받게 되는 돈입니다. 보통 세전, 각종 수당이나 인센티브를 제외하고 말합니다. 그래서 기본급 * 12가 연봉이 되는 경우는 거의 없습니다. 추가수당 (연장근로, 휴일근로, 야간근로) 근로 계약서에 있는 근로시간 외에 근무하면 받는 보상들을 말합니다. 정해진 근로시간 보.. 2024. 2. 15.
다양한 로그인 방법을 알아보자 (OAuth, Open ID, OIDC, SSO, SFA, 2FA, MFA, OTP, PassKey) 🐜 큰 그림 우선, 로그인이란 나만 아는 정보를 제공해서 모두가 접근할 수 없는 특정 정보를 접근하는 것을 말합니다. 당연히 보안이 좋기 위해서는 나만 알 수 있는 정보들을 최대한 많이 제공하는게 좋겠죠. 하지만 로그인 할 때 마다 아이디/비밀번호를 입력하고, 지문이나 얼굴 인증을 하고, OTP 코드를 입력한다면 너무 불편해서 거의 쓰지 않겠죠? 그래서 보안과 편의성 사이의 저울질이 중요합니다. 🐜 분류하기 SFA, 2FA, MFA = 1번만 인증을 하냐, 여러번 인증을 하냐? 로그인 할 때 아이디/비밀번호든, 생체인증 (얼굴, 지문 등)이든, 1개의 인증정보만 제공하면 SFA (Single Factor Authentication)입니다. 여기에 더해 추가로 흔하게는 OTP (One-Time Passwo.. 2024. 2. 8.
Kotlin Sequence (스퀸스) 에 대해 알아보자 🐜 Sequence, 본질적으로 뭘까? Type Kotlin의 Sequence는 Type입니다. Collection 처럼 값을 담고 있지만 Eager하게 만드는게 아닌 Lazy하게 만들어 대량의 데이터를 효율적으로 다루거나 무한히 계속되는 데이터를 다룰 수 있게 해 줍니다. 예를들어 아래와 같이 특정 연산을 하고 난 결과의 1번째 값을 가져오는 코드가 있다고 해 봅시다. (100 until 2_000_000) .map { it * 2 } .filter { it % 3 == 0 } .first() 이 코드의 내부 동작을 살펴보면 우선 map으로 모든 원소를 2배 한 후, filter로 모든 원소의 나머지를 계산해 0인 원소만 남긴 뒤, 여기서 첫 번째 원소를 가져옵니다. Eager 하게 동작하기 때문에 이.. 2024. 2. 4.
핵사고날? 클린 아키텍처? DDD? 🐜 취준생들의 단골멘트 취준생들의 이력서에 단골로 등장하는 단어가 있습니다. 이름도 멋진 헥사고날 Architecture입니다. 처음 헥사고날 Architecture류의 용어들 (헥사고날 Architecture, DDD, Clean Architecture)를 접했을 때 저는 쓸데없이 복잡하고 혼란스러운 이것들을 왜 써야 하는지 도저히 이해할 수가 없었습니다. 그도 그럴게, 헥사고날 Architecture가 왜 좋은지 알려면 Business Logic이 꽤 복잡한 애플리케이션을 다뤄야 하기 때문입니다. 간단한 CRUD 애플리케이션에 핵사고날 아키텍처를 써 봤자 쓸데없이 복잡할 뿐이죠. 그럼 헥사고날 Architecture가 왜 태어났고 왜 유용한지 여태까지 이해하고 경험한 내용들을 써 보겠습니다. 🐜 용어.. 2024. 1. 28.
📖 규칙 없음 : 넷플릭스는 어떻게 일할까? 🐜 평점 : 3 / 5 (★★★☆☆) 넷플릭스의 일하는 방식을 엿볼 수 있어서 재밌었고, 급진적으로 보이는 문화에도 나름의 탄탄한 이유가 있어서 지켜보는 것 만으로도 재밌었습니다. 게다가 제가 다니고 있는 회사 (토스)의 문화랑도 비슷해 공감하면서 본 부분도 있었습니다. 하지만 재미를 제외하면 현실적으로 해당 내용을 현실에 적용하기에는 많은 무리가 있을 거 같은데, 이런 고민에 관련된 내용은 없고 단순 소개 위주의 내용이였습니다. 🐜 규칙 없음을 읽게 된 이유 최근에 토스라는 회사에 입사하게 됐는데 누군가가 토스의 문화가 넷플릭스의 문화와 관련이 많다고 해서 넷플릭스의 문화를 소개하는 규칙없음이라는 책에 흥미가 생겼습니다. 기업 덕후(?)라 기업에 관한 여러 책을 읽는 걸 좋아해서 읽게 됐습니다. 🐜 요.. 2024. 1. 27.