Log.recent(bluayer)
-
Architecture&Design
Cache 파헤치기
What is cache? 캐시는 속도 차이로 인한 퍼포먼스 저해를 막기 위한 것이라고 생각해도 과언이 아니다. 단 한 대의 서버 내부에서도 여러 이유로 캐시를 사용할 수 있으며, 여러 서버 간의 통신에서도 캐시를 사용할 수 있다. 어느 하나가 상대적으로 너무 느리기 때문에 생기는 문제를 계층적 구조를 통해 해결하고자 한 방법이 캐시라고 할 수 있다. “Caching”은 이제 특정 레벨에서 뿐 아니라 OS level, Architecture leve..
-
SpringBoot
@Transactional 파헤치기
아 일단 트랜잭션이 뭔데? 데이터베이스 트랜잭션(Database Transaction)은 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미한다. - wikipedia DBMS는 각각의 트랜잭션에 대해 ACID를 보장한다. 간단하게 읽어보자. 원자성(Atomicity)은 트랜잭션과 관련된 작업들이 부분적으로 실행..
-
Other
Java 8?
서론 일반적으로 Java로 작업을 하다보면 Java 8과 11을 보통 많이 쓰는 것 같다. 문득, "왜 그렇지?"라는 생각이 들었고 특히 Java 8에서 어떤 변경사항이 있었는지 궁금해졌다. 따라서 알아보기로 결정했다. Java 8? Java 8에서 자바 개발자가 궁금해할만 한 변경 사항은 다음과 같다. Lambda Expression & Method Reference Stream API & Parallel Optional Interface Default Method java.time 패키지 PermGen 제거 장난 아..
-
Activity
2021년 회고
서론 먼저 2021년을 돌아보기 전에, 2020년 회고를 다시 여러 번 읽어봤습니다. 읽다보니 2020년보다 2021년에 훨씬 다양한 경험을 하고 더 성장한 것 같아 뿌듯한 마음이 들었습니다. 물론 모든 새해 계획이 그렇듯, 계획되어 있던 부분들과는 다르게 진행된 것들도 있습니다. 2022년을 돌아봤을 때 "2021년보다 나아졌군!"이라고 생각할 수 있도록 2021년 회고를 적어보고자 합니다. 복무 시작 첫 프로젝트부터 지금까지 물론..
Log.recent(bluayer)
-
Cache 파헤치기
What is cache? 캐시는 속도 차이로 인한 퍼포먼스 저해를 막기 위한 것이라고 생각해도 과언이 아니다. 단 한 대의 서버 내부에서도 여러 이유로 캐시를 사용할 수 있으며, 여러 서버 간의 통신에서도 캐시를 사용할 수 있다. 어느 하나가 상대적으로 너무 느리기 때문에 생기는 문제를 계층적 구조를 통해 해결하고자 한 방법이 캐시라고 할 수 있다. “Caching”은 이제 특정 레벨에서 뿐 아니라 OS level, Architecture leve..
2022.02.15 15:39 -
@Transactional 파헤치기
아 일단 트랜잭션이 뭔데? 데이터베이스 트랜잭션(Database Transaction)은 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미한다. - wikipedia DBMS는 각각의 트랜잭션에 대해 ACID를 보장한다. 간단하게 읽어보자. 원자성(Atomicity)은 트랜잭션과 관련된 작업들이 부분적으로 실행..
2022.02.15 15:20 -
Java 8?
서론 일반적으로 Java로 작업을 하다보면 Java 8과 11을 보통 많이 쓰는 것 같다. 문득, "왜 그렇지?"라는 생각이 들었고 특히 Java 8에서 어떤 변경사항이 있었는지 궁금해졌다. 따라서 알아보기로 결정했다. Java 8? Java 8에서 자바 개발자가 궁금해할만 한 변경 사항은 다음과 같다. Lambda Expression & Method Reference Stream API & Parallel Optional Interface Default Method java.time 패키지 PermGen 제거 장난 아..
2022.02.15 15:11 -
2021년 회고
서론 먼저 2021년을 돌아보기 전에, 2020년 회고를 다시 여러 번 읽어봤습니다. 읽다보니 2020년보다 2021년에 훨씬 다양한 경험을 하고 더 성장한 것 같아 뿌듯한 마음이 들었습니다. 물론 모든 새해 계획이 그렇듯, 계획되어 있던 부분들과는 다르게 진행된 것들도 있습니다. 2022년을 돌아봤을 때 "2021년보다 나아졌군!"이라고 생각할 수 있도록 2021년 회고를 적어보고자 합니다. 복무 시작 첫 프로젝트부터 지금까지 물론..
2021.12.30 22:45 -
Jib란? (+ M1 Mac에서 빌드하기 & Kotlin DSL)
서론 M1 Mac에서 Jib를 이용하여 스프링 부트 프로젝트를 빌드하는 것에는 성공했으나, 실행할 때 알 수 없는 이유로 실패했다. (정확하게는 configuration 관련 빈들을 생성할 때 meta-data를 읽지 못해 생기는 이슈인 것으로 파악했다.) (오류명: Unable to read meta-data..) 이 기회에 Jib에 대해서 좀 더 알아보고 정리한 다음, M1 Mac에서 어떻게 하면 Jib 이미지를 정상적으로 빌드할 수 있는지에 대해서 소개하고자 한다..
2021.09.06 12:38 -
팀 내 Contribution Rule 설정을 위한 참고서
서론 본 글은 팀 내 컨트리뷰션 룰 세팅을 위해 필자가 사이드 프로젝트에서 작성했던 글이다. 컨트리뷰션 룰 관련 세팅은 상당히 팀원들과 대화를 많이 해야하는 부분이다. 다른 분들도 본 글을 참고해서 팀원들과 협의한 다음, 함께 룰 세팅하시길 바란다. Branch Rules 기본적으로 Git-flow를 따라가고 있어요. 하지만, 너무 여러 브랜치가 난립하는 걸 막기 위해서 기본적으로 세 종류의 브랜치를 운영하고 있다고 생각하면..
2021.09.04 21:54 -
책 한 권 값에서 세 권 값으로 O'Reilly 책 다 보기(feat. ACM Membership Renewal)
서론 아쉽게도, O'Reilly와 ACM 간 계약이 끝났다. 이제 O'Reilly를 구독하는 방법 밖에 남지 않았다 😢 아시는 분들은 아시겠지만, https://bluayer.com/31 책 한 권 값으로 O'Reilly 책 다 보기(feat. ACM Student Membership) 꼭 읽어주세요! 6월 30일부터 학생 멤버로는 오라일리에 접근하는 것이 어렵다고 합니다. 다른 방법이 있는지 알아봤지만, 찾지 못했습니다. 하지만, 99$로 할 수 있는 Professional Membership으로..
2021.07.14 10:29 -
[Kubernetes] 5. Service
서론 본 글은 마르코 룩샤의 Kubernetes in Action 책을 기반으로 쓰였으며, 챕터별 내용들을 정리하여 시리즈로 발행 중이다. 따라서 책 내용의 일부가 요약되어 있으며, 필자의 추가적인 해석이 포함되어 있다. 이전 글 https://hack-jam.tistory.com/43 [Kubernetes] 4. LivenessProbe, ReplicationController, ReplicaSet, DaemonSet, Job, CronJob 서론 본 글은 마르코 룩샤의 Kubernetes in Action 책을 기반으로 쓰..
2021.07.05 17:05 -
5분 59초만에 InfluxDB + Grafana를 EC2 Instance 위에서 연동하기
서론 환경설정에 앞서, 본 문서는 Amazon Linux 2 AMI 기반 인스턴스에서 환경설정한 것을 바탕으로 쓰여졌음을 알린다. 또한 InfluxDB는 2.0.7 버전을 바탕으로 쓰여졌음을 밝힌다. 필자는 왜 InfluxDB + Grafana 조합을 선택했는가? 원래 필자가 고려했던 스택은 Prometheus + Grafana 조합이었다. Prometheus의 경우 Metric(지표)을 Polling하는 방식이다. 당연히 서비스가 여러 개로 늘면 Service Discovery가 필요하게 된다..
2021.07.01 15:43 -
9분 59초 만에 Github Action + AWS Elastic Beanstalk로 TS 프로젝트 CI/CD 파이프라인 구축하기
서론 AWS는 가끔 버전에 따른 이슈가 발생하기 때문에 참고만 해주세요! 필자는 대부분의 프로젝트에서 Github Action을 CI/CD 툴로 이용하고 있다. 그 이유는 "매우 간편"하게 사용할 수 있기 때문이다. 물론 다른 서비스(Travis CI 등등)도 사용할 수 있겠지만, 해당 파이프라인이 실패할 경우 바로 GIthub에서 확인할 수 있다는 점이 상당히 간편하다고 생각했다. (물론 메일도 온다) 또한 배포 후 관리를 위한 툴로는 AWS El..
2021.06.30 23:26 -
InfluxDB & Grafana 연결 문제 해결 (Bad Gateway, Bad Request, Error reading InfluxDB)
서론 필자는 사내에서 InfluxDB로 시계열 데이터를 수집하고, Grafana로 해당 대쉬보드를 만드는 업무를 맡게 되었다. 그 과정에서 자연스럽게 InfluxDB와 Grafana를 연결하는 태스크가 있었는데, 해당 업무를 진행하던 중 겪었던 어이없던 이슈를 소개하고자 한다. 빠른 체크리스트 독자 여러분을 위해 빠른 체크리스트를 작성해봤다. 시간이 없으신 분들은 이것부터 빠르게 훑어보자. (InfluxDB에 설정을 하지 않았다면) URL의..
2021.06.24 16:17 -
주니어 백엔드 개발자를 위한 추천 도서 목록
서론 개인적으로 책을 읽는 건 좋은 습관이지만, 정리하지 않고 책을 읽는 습관은 나쁜 습관이라고 생각한다. 필자 본인은 책을 읽을 때 2번, 3번씩 읽고 나서 정리하려고 노력한다. 이 목록에 있는 책들은 1번 읽기가 어려울 정도로 어렵다. 그렇지만, 읽을 때는 잘 와닿지 않지만 코드를 작성하면서, 인프라를 구축해보면서 "이게 최선인가?"라고 생각할 때 부족한 지식들을 채워줄 수 있는 책들이다. 모르기 때문에 더 좋은..
2021.06.08 13:26 -
[Kubernetes] 4. LivenessProbe, ReplicationController, ReplicaSet, DaemonSet, Job, CronJob
서론 본 글은 마르코 룩샤의 Kubernetes in Action 책을 기반으로 쓰였으며, 챕터별 내용들을 정리하여 시리즈로 발행 중이다. 따라서 책 내용의 일부가 요약되어 있으며, 필자의 추가적인 해석이 포함되어 있다. 이전 글 2021.03.24 - [Log.Develop/DevOps] - [Kubernetes] 2. Pod(파드) [Kubernetes] 2. Pod(파드) 서론 본 글은 마르코 룩샤의 `Kubernetes in Action` 책을 기반으로 쓰였으며, 챕터별 내용들을 정리하여..
2021.03.29 10:32 -
[Object] Chapter 02 ~ 05 정리
서론 본 글은 필자가 오브젝트(조영호, 위키북스, 2019.06)라는 책을 읽으며 인상 깊었던 글귀들을 정리해 놓은 글이다. 필자는 대학교에서 OOP(Object Oritented Programming) 수업을 수강했었음에도, 해당 책에 있는 내용들이 매우 값지게 느껴졌다. '단순히 OOP가 무엇인가?'의 관점을 넘어 OOP를 실천하고자 하는 프로그래머들에게 하나의 지침서가 될 수 있는 내용이라고 생각한다. 본 글은 시리즈로 발행될 예정이며, 추..
2021.03.25 09:39 -
[Kubernetes] 3. Pod(파드)
서론 본 글은 마르코 룩샤의 `Kubernetes in Action` 책을 기반으로 쓰였으며, 챕터별 내용들을 정리하여 시리즈로 발행 중이다. 따라서 책 내용의 일부가 요약되어 있으며, 필자의 추가적인 해석이 포함되어 있다. 이전 글 2021.03.24 - [Log.Develop/DevOps] - [Kubernetes] Chapter 1 ~ 2. Docker & K8S [Kubernetes] Chapter 1 ~ 2. Docker & K8S 서론 본 글은 마르코 룩샤의 Kubernetes in Action 책을 기반으로 쓰였으며..
2021.03.24 14:19 -
[Kubernetes] 1&2. Basic of Docker & K8S
서론 본 글은 마르코 룩샤의 Kubernetes in Action 책을 기반으로 쓰였으며, 챕터별 내용들을 정리하여 시리즈로 발행 중이다. 따라서 책 내용의 일부가 요약되어 있으며, 필자의 추가적인 해석이 포함되어 있다. 다음 글 2021.03.24 - [Log.Develop/DevOps] - [Kubernetes] Chapter 3. Pod(파드) [Kubernetes] Chapter 3. Pod(파드) 서론 본 글은 마르코 룩샤의 `Kubernetes in Action` 책을 기반으로 쓰였으며, 앞으로 챕터..
2021.03.24 14:08 -
AWS SAA-02 자격증 취득 후기
서론 먼저 자격증 취득 후기에 대해서 말하기에 앞서, AWS에 자격증이 있어?! 하고 궁금하실 분들을 위해 조금 설명하고자 한다. AWS는 공인 자격증을 여러 종류를 발급하고 있다. 사실 기초는 상당히 쉬운 수준에 불과하고, 보통은 어소시에이트부터 도전하시는 분들이 많다. 또한 주기적으로 시험의 내용이 조금씩 추가되거나 바뀌고 있는 상황이며, 내가 시험을 본 Solutions Architect 부분에서는 00, 01을 거쳐 현재는 02..
2021.02.22 11:51 -
Amplify로 React 프로젝트 쉽고 빠르게 배포하기
서론 평화롭게 사이드 프로젝트를 진행하고 있던 어느 날... 우리 팀이 사놓은 도메인에 API 서버는 연결되어 있었으나, React로 만든 프론트엔드가 연결이 되어 있지 않았음을 문득 깨달았다. '아 이걸 어떻게 하지?'라는 고민을 하다가 일단 임시방편으로 맨 처음에는 단순하게 webpack dev server로 API 서버 안에 함께 띄워서 nginx를 통해 라우팅을 다르게 주었다. 그러나 곧 이 방법의 문제점이 나타나게 되는데... 한 EC2..
2021.02.16 12:26 -
CQRS 패턴, 코드에 순식간에 적용해보기
서론 평화롭게 프로젝트를 개발하고 있던 어느 날, 우연한 기회로 CQRS 패턴에 대해 이야기를 들을 일이 생겼다. 기존 구조는 R.C.Martin의 Clean Architecture를 따라서 작업을 해둔 상태였는데, 어떤 프로그래머 분이 우리 구조에 대해서 들으시더니 오, 그 구조면 CQRS도 고려해보는 건 어때요? 라는 말을 해주셨다. 그리고 나는 CQRS를 진행하던 사이드 프로젝트에 적용하기 위해 알아보는 여정을 가졌다. (그리고 이 사이드..
2021.02.14 17:55 -
개발 및 비개발직군을 위한 Refactoring 이야기
서론 필자는 개발자이다. 이 글을 써야겠다고 마음 먹은 계기는 정말 간단했다. 아, 우리 팀의 비개발직군들은 나 혹은 다른 개발자들이 리팩터링, 리팩터링 얘기를 할 때, '중요하다고 생각한 그거 때문에 기능 개발이 밀린다'고 생각하면 어떡하지? '그게 도대체 뭐길래, 우리의 중요한 일정까지 미뤄야 하는거야!'라고 생각하면 어떡하지? '개발자들.. 티도 안 나는 작업을 도대체 왜 하는거야!!'라고 생각한다면? 정말로 생..
2021.01.30 16:19 -
[Node.js] Crawling을 위한 Puppeteer 알아보기
Puppeteer. 공식 문서 링크 https://pptr.dev Puppeteer란? 구글 크롬의 DevTools Protocol을 통해 Chrome 혹은 Chromium을 제어하기 위한 API를 제공한다. 참고로 Google Chrome 개발 팀에서 직접 개발했다고 한다. 구조는 아래와 같다. 간단하게 하나만 설명하면, Puppeteer는 하나의 Browser를 갖고 default BrowserContext가 생성된다. 하나의 Browser는 여러 개의 Browser Context를 갖는다. 나머지 구조도 아래에서 볼 수..
2021.01.20 11:55 -
[Node.js] HTTP 요청 관련 라이브러리들(request vs axios vs superagent)
서론 우연히 쓸 일이 생겨서, HTTP Request 라이브러리들을 정리해보았다. 개인적으로는 가벼움 때문에 superagent를 사용하였으며, 사실상 request와 거의 똑같이 쓸 수 있는 구조로 되어 있어 편리하게 사용하였다. 1. request 공식 문서 : https://github.com/request/request request/request 🏊🏾 Simplified HTTP request client. Contribute to request/request development by creating an account on GitHub. github.co..
2021.01.19 15:28 -
0년차 개발자의 2020년 회고
서론 저는 회고를 두려워하는 편입니다. 매 선택을 되돌아보면 항상 후회되는 일들이 너무 많았기 때문에, 보통은 되돌아보기에 그치지 않고 자책까지 도달해서 스스로를 옥죄는 성향이기 때문입니다. 크게 후회한 경험이 많아서 알게 모르게 회고를 두려워했던 거 같습니다. 그런데 올해부터 회고를 쓰기로 마음을 먹었습니다. 2020년이 행복한 시기였고, 크게 후회한 경험이 오히려 좋은 경험으로 바뀌기도 했습니다. 결정적으..
2021.01.01 17:11 -
[TS] TypeScript에서 Singleton 패턴 적용하기
서론 최근 코드 상의 여러 문제를 해결하기 위해서 적극적으로 디자인 패턴을 적용하기 시작했다. 작년만 해도 무분별하게 디자인 패턴을 사용해 왔었는데, 지금은 코드를 작성하고 나서 더 좋은 방법이 없었나 고민하는 하는 과정(보통 리팩토링 과정이긴 하다)에서 코드로 인해 발생할 수 있는 문제에 대해 생각한 다음 좋은 방법으로 알고 있는 디자인 패턴을 조금씩 적용해 나아가고 있다. 아무쪼록 최근에 코드를 작성하던..
2020.10.06 17:36 -
책 한 권 값으로 O'Reilly 책 다 보기(feat. ACM Student Membership)
꼭 읽어주세요! 아쉽게도, O'Reilly와 ACM 간 계약이 끝났다. 이제 O'Reilly를 구독하는 방법 밖에 남지 않았다 😢 6월 30일부터 학생 멤버로는 오라일리에 접근하는 것이 어렵다고 합니다. 다른 방법이 있는지 알아봤지만, 찾지 못했습니다. 하지만, 99$로 할 수 있는 Professional Membership으로는 이용할 수 있다고 합니다. 안타깝게도 조금 더 비싼 가격에 제공되는 Professional Membership을 사용하는 걸로.. 추가적으로..
2020.09.24 12:33 -
2분 59초 안에 좋은 PR 작성하기
서론 전 여담 아, 안타깝게도 필자의 능력 부족으로 인해 글을 3분 만에 읽을 수는 없다... 다만, 결과적으로, 3분 카레보다 빠르게 좋은 PR을 작성할 수 있도록 글을 쓰고자 노력했다!! 서론 Git을 여러 사람과 사용하게 된다면, Remote Repo로 Github을 쓸 일이 정말 많다. 특히 회사에서 Github을 쓰게 된다면, Pull Request(이하 PR)을 날릴 일이 엄청 많다. 기능 하나에 PR 한 번이라고 해도 무방하고, 기능을 쪼개서 개발..
2020.09.22 20:15 -
[MySQL] How to swap PK?
서론 가끔 실제 환경에서 Database가 다운되거나 혹은 서버가 다운되거나 등의 이유로 DB의 무결성이 깨지게 되는 케이스가 존재한다. 임시방편적으로 무결성이 깨진 부분을 복구하는 건 서버 개발자 혹은 DBA의 몫인데, 그 과정에서 Record를 삽입하게 되고, 삽입한 레코드의 순서가 맞지 않는 상황이 발생하게 된다. 이런 상황을 맞닥뜨렸을 때 어떻게 대응할 것인가? 나는 처음 생각한 방법으로, PK를 swap하는 방법을 생각했..
2020.09.16 19:37 -
[TS / Node] TS + Node.js + Express + Babel(option) + eslint로 개발환경 세팅하기
서론 이 포스트를 쓰게 된 계기는, 내가 원하는 저 조합(TS + Node.js + Express + Babel + eslint)으로 개발환경을 세팅했으며 이에 대해 잘 정리된 글을 생각보다 찾기 힘들어서다. 위의 조합으로 개발환경을 세팅하는 가장 강력한 이유는 TS(TypeScript)를 사용하고 싶기 때문이라고 생각한다. '정적 타입이 주는 안정감'이란 단어는 얼마나 HIP한 단어인가!! (안타깝게도 JS 개발자들에겐 HIP하게 느껴진다ㅠㅠ) 아무쪼록 저..
2020.07.23 13:08 -
[Markdown] 웹 개발자를 위한 README.md 작성법
서론 Markdown은 문서를 작성하는 방법 중 특히 개발자들에게 상당히 보편적인 방법이라고 할 수 있다. '.md' 확장자로 작성되는 문서들이 바로 마크다운으로 작성된 문서라고 할 수 있는데, 이런 마크다운이 편리한 이유는 텍스트를 쉽게 편집할 수 있을 뿐 아니라, (개인적으로는 마우스를 쓰지 않아도 글씨 크기 조정, 양식화 등 다양한 일을 할 수 있어서 좋아한다 :) HTML 등 다양한 형식으로 변경할 수 있기 때문이다. 아..
2020.06.16 12:53 -
[JavaScript] Arrow function과 this 키워드
서론 ES6에는 다양한 내용들이 새로 포함되었고, 유용한 것들이 많다. 그렇지만 사용 빈도로 순위를 매긴다면, 필자는 오늘 다룰 Arrow function이 다섯 손가락 안에 꼽힐 것이라고 확신한다. 또한, Arrow function을 그냥 단순하게 축약 문법이라고 생각하고 쓰기엔 생각보다 신경 써서 알아 둬야 할 부분들이 있다. (이 내용이 바로 this와 관련된 부분이다.) 아무쪼록, Arrow function에 대해 간단히 알아보자. 또한 this 키..
2020.04.28 14:38 -
[Java][Maven][IntelliJ] java.lang.NoClassDefFoundError
서론 자바로 프로젝트 세팅을 하던 중, main 함수를 실행했는데 이런 에러가 발생했다. 찾아보니, java version 때문에 생긴 일이라고 생각되었으며 여러 가지 해결방법이 있었다. 그러나 언제나와 같이 한 두 가지 방법을 시도해도 안 되었기 때문에, 다음과 같이 해결 방법 3가지를 정리해보았다. 개발 환경 필자의 개발 환경은 다음과 같다. OS : macOS Catalina Device : Macbook pro early 2015 Java version : 11 (1.11)..
2020.04.23 16:33 -
[H2] Database (디렉토리 경로) not found, either pre-create it or allow remote database creation
서론 H2 DB를 처음 사용할 때 맞이할 수 있는 문제다. 필자는 개인적으로 Spring boot를 사용할 때 테스트 용 디비로 H2를 사용하고 있었는데, 최근에 컴퓨터에서 직접 DB 조작할 일이 생겨 깔아서 사용하던 중 맞이한 문제다. 개발 환경 필자의 개발 환경은 다음과 같다. OS : macOS Catalina Device : Macbook pro early 2015 H2 version : 1.4.200 문제가 무엇인가? Database (디렉토리 경로) not found, either pre-create i..
2020.04.23 15:57 -
[JavaScript] Closure와 IIFE
서론 개인적으로 JavaScript(이하 JS)를 공부할 때 이해하기 어려웠던 내용을 뽑자면, 단연 이 글의 주제인 Closure와 IIFE라고 할 수 있다. 심지어 Closure와 IIFE, 이 두 가지 개념은 면접 단골 질문이라고 할 수 있다. (js 개발자 혹은 FE(Front-end) 개발자 면접에서 자주 나온다고 한다.) 위의 사진은 하단 참고 자료 3번에 있는 인터뷰 질문 정리 깃헙이다. (정말 좋다!!) (https://github.com/JaeYeopHan/Interview_Ques..
2020.04.20 23:08 -
[MySQL][JDBC] SQLException : server time zone value 'KST' is unrecognized
서론 내가 사용하고 있는 환경은 다음과 같다. OS : macOS Catalina MySQL : 8.0.19(brew로 설치함) JDBC : 글 작성일 기준 latest 버전 이 문제를 발견하게 된 상황은 MySQL과 JDBC를 함께 사용하고 있는 상황이었다. 하지만 찾아보니 MariaDB에서도 일어나는 에러인 것으로 보였다. 아무쪼록, 필자는 MySQL을 사용하다 발견한 에러임을 먼저 밝힌다. 정확한 에러 메시지의 내용은 다음과 같다. java.sql.SQLException: The ser..
2020.04.15 22:07 -
Samsung Bixby Crew(삼성 빅스비 크루) 2기 활동 회고
서론 2019-2학기부터 올해 2월쯤까지 삼성 빅스비 크루 2기로 활동했습니다. 사실 이런 활동이 존재하고 있는지도 몰랐는데, 같은 동아리에서 활동하시던 분이 삼성과 빅스비에 관심이 많으셔서 운 좋게 기회를 얻게 되었습니다. 빅스비 크루란? 빅스비 크루란, 삼성에서 대학생을 대상으로 진행하는 활동으로 빅스비에 관심이 많으며 이에 대해 개발적으로도 잘 알고 있어 여러 행사를 주최할 수 있는 크루를 의미합니다. 실제..
2020.04.15 01:28 -
Google Code Jam Qualification Round(QR) 참가 후기
Google Code Jam이란? Google Code Jam은 매년 열리는 구글에서 주최하는 알고리즘 대회이다. 참가 후기를 보면 단순히 대학생들 뿐 아니라, 실제 현업에서 일하는 직장인들도 많이 참여한다. 단순히 한 번의 대회로 결정되는 대회는 아니고 상당히 많은 과정을 거쳐야 한다. 구조는 다음과 같은데, 1. Qualification Round 2. 1라운드 3. 2라운드 4. 3라운드 5. World Final(최종 결선) 이렇게 총 5단계로 이루어져 있다고 생각..
2020.04.07 16:27 -
[백준][알고리즘][C++] 2606 바이러스
문제의 난이도 문제의 난이도 : Silver 2 문제 분석 문제의 난이도는 Silver에서 상위 티어지만, BFS 알고리즘을 알고 있다면 전혀 어렵지 않다. 이 문제는 상당히 BFS의 정석 같은 문제라고 할 수 있다. 문제를 풀 때 중요한 키는 '컴퓨터 간 연결 관계를 어떻게 표현할 것인가?' 라고 할 수 있다. 문제 해결 컴퓨터 간 연결 관계를 어떻게 표현할 것인가? 다양한 방법이 있을 수 있는데, pair 형태의 벡터로 저장한다. Map에..
2020.03.29 11:48 -
[백준][알고리즘][C++] 16165 걸그룹 마스터 준석이
문제의 난이도 문제의 난이도 : Silver 2 문제 분석 이 문제는 필자가 출제 했던 문제다. 문제를 낼 당시에는 학부 2학년이었기 때문에 알고리즘에 대해서도 잘 몰랐고, 문제를 많이 풀어 보지 못 해서 여러모로 잘 냈다고 할 수 없는 문제라고 할 수 있다.. 아무튼, 결론적으로 이 문제의 핵심은 다음과 같다. 주어진 그룹과 멤버를 어떤 형식으로 저장할 것인가? 출력을 위해서 어떤 형식이 좋은 저장 방식 일까? 즉, 두 질문..
2020.03.18 11:39 -
개(발 어)린이를 위한 개발 안내서(ver. 2020)
P.S. 글을 쓰면서 많은 정보를 담으려다 보니, Compact 한 글이 아니게 되었다... 최대한 노력해 봤지만 그래도 잘 안 읽힌다면 필자의 필력 부족이니 이해해 주시길.. 또한 개인적인 관점이 많이 담겨있는 글이라 불편하실 수 있다는 점을 미리 밝히고자 한다. 서론 먼저, 본인은 대학교 4학년에 스트레이트로 재학 중이며 대학에 와서 코딩을 처음 접한 사람이었다. 개인적으로 스스로의 장점 중에 하나가 '아무나 붙잡고 모르..
2020.03.01 13:16 -
개(발 어)린이, 실력 증진을 위해 읽을 거리를 찾아봅시다!
서론 개발을 가는 중간중간, 정보를 찾는 것은 생각보다 귀찮은 일이다. 특히 아예 모르는 분야를 공부하기 시작할 때 정보를 얻기란 하늘의 별 따기가 아닐 수 없다. 그래서 개발자들은 흥미로운 읽을거리들을 항상 쥐고 있는 거 같다. (물론 나처럼 약간의 활자 중독이 있는 사람도 있다) 아무쪼록, 개인적으로 알고 있는 읽을 거리들을 소개하고자 한다. 설명을 하기 전에, 필자 본인은 웹 개발자이다. 프론트도 약간은 하지..
2020.03.01 13:04 -
개(발 어)린이, 네트워킹을 해 보자!
네트워킹(인맥) 중요한가요? 가끔 '네트워킹(인맥이 중요한가?)'라고 묻는 분들이 있는데, 일단은 인맥보다는 실력이 중요하다는 생각을 한다. 하지만 사회 나가서 개발은 혼자 다 하는 것이 아니라 같이 협업하는 과정도 중요하기 때문에 네트워킹 과정을 무시할 수 없다. 네트워킹을 통해 얻는 정보도 많고 도움도 얻을 일이 생각보다 많다. 그러나 무작위적으로 막 늘리는 네트워크는 추천하지 않으며, 네트워크에 힘쓰기 전..
2020.03.01 12:57 -
[Gradle] implementation vs compile
서론 Gradle dependency 관련해서 검색을 하다보면, 어떤 글에서는 implementation을 사용하고 어떤 글에서는 compile을 사용하는 경우가 있다. 사실 어떻게 사용해도 돌아가긴 해서, 음... 무슨 차이지?하고 알아보기로 했다. 공식 문서에는 꽤 간단하게 설명되어 있지만, 정말 바로 알아들을 수 없..었..다... (추가적으로 댓글에 정말 정말 좋은 내용을 남겨주셨다! api에 관해 더 궁금하신 분들은 해당 댓글을 확인해주시면..
2020.02.25 12:36 -
[백준][C++]17269 이름궁합 테스트
문제의 난이도 Bronze 1 문제 분석 문제의 난이도가 Bronze인 만큼, 문제가 그렇게 어렵지 않다. 문제의 핵심은 아주 아주 간단하다. 1. 알파벳의 획수를 어떻게 저장할 것인가? 2. 수행을 어떤 방식으로 할 것인가? 문제 해결 1. 알파벳의 획수를 어떻게 저장할 것인가? 사실 배열로 저장해도 되지만, 배열로 찾는 거보다 map을 활용해서 저장하는 것이 더 좋다고 생각했다. 일단 알파벳 : 획수와 같은 key, value 형식이 가장..
2020.02.22 14:07 -
스프링 부트와 AWS로 혼자 구현하는 웹서비스 문제 해결
서론 스프링 부트와 AWS로 혼자 구현하는 웹 서비스(이동욱 저)의 초판을 현재 읽고 있습니다. (개인적으로 처음 접하기에 정말 정말 좋은 책이라고 생각합니다.) 중간 부분까지 읽으면서 책에 약간의 오탈자가 있거나, 내용이 약간 빠진 부분이 있어서 이런 문제들을 스스로 해결했는데, 이를 좀 공유하고자 합니다. (추가로 발행된 다른 판의 책에서는 해결이 되어 있을 수 있습니다. 참고하시길 바랍니다.) 문제 해결 부분 Lo..
2020.02.19 20:53 -
[선형대수학] Chapter 1-1. Linear equation, System, row operations
얼마 전부터, 선형대수학을 조금씩 다시 공부하기 시작했습니다!! 그래서 공부하는 김에 나중에 다시 볼 수 있도록 차근차근 블로그를 쓰기로 결심하게 되었습니다. Chapter 1-1. A systems of linear equations 1) Linear equation(선형 방정식 || 1차 방정식) 사진 1) Linear equation의 기본적인 형태 사진 2) Linear equation을 그래프로 나타냈을 때 기본적으로 Linear equation은 사진 1, 2의 형태처럼 생겼습니다. 그리..
2019.02.07 12:37 -
Express.js를 처음 접할 때, 알면 좋을 개념 3가지
방학 시작한 이후로 칩거하면서 공부는 안 하고 탱자탱자 놀다가 얼마 전부터 블로그라도 쓰자는 마음으로 글을 쓰기로 했습니다! 그래서 쓰기로 한 글이, 요즘 Node를 배우며 접하게 된 Express.js를 공부하며 제가 헷갈렸던 부분이나 처음에는 뭐가 뭔지 모르겠던 부분을 정리했습니다. 사실 여러 문서를 찾아보거나 그러면 금방 알 수 있는 부분이지만, 그런 검색으로 시간을 낭비하는 것보다 빨리 이해하고 알 수 있도록 정..
2018.07.25 15:10