저는 8월 12일 부로 협업툴 B2B 서비스를 운영하는 회사에 근무하게 되었습니다.근황에 대해 짧게 이야기 하자면, 2주간의 온보딩을 마치고 과제를 받아 진행중입니다.✔️ Overview저는 개발을 학습해 오면서 널리쓰이는 DBMS인 MySQL을 주로 사용/학습을 진행 해 왔습니다.제 회사에서는 단일 DB로 PostgreSQL을 사용하는데, 이때 까지 학습한 RDBMS인 MySQL과의 차이점에 대해 기술해 보고자 합니다! :) [차이점 1️⃣] INDEX🐬 MySQLMySQL은 primary index를 테이블 당 반드시 하나 존재합니다. (지정 하지 않으면 MySQL InnoDB 스토리지 엔진이 자동 생성합니다)primary key를 기준으로 primary index가 생성되며, 이는 clusered..
금칙어 필터링 기능을 분석하고 리팩토링 해보자!(1)지난 포스팅에서 나는 기존 팀원이 짜놓은 코드를 리팩토링 했다.단순 라이브러리를 이해하고 리팩토링 한 것 뿐아니라, 파일로 읽던 금칙어 목록들을 DB로 이전시켰다. 📂 파일로 금칙어를 읽어 처리하는데의 문제점파일로 금칙어를 읽으면 몇가지 불편한 문제점이 발생했다. [문제점 1] 금칙어 목록을 Continuous Delivery 과정에서 jar 파일 뿐 아니라 금칙어 파일도 S3에 같이 저장해줘야 했다. 그래야 application 실행 시점에 메모리에 읽을 수 있으니깐.[문제점 2] 금칙어를 추가하거나, 삭제하려면 다시 배포를 해야한다. 그러면, 서브모듈 관리도 해야하고, 버전 관리에 금칙어 텍스트 파일 관리가 포함되게 된다.따라서, 코드가 아닌 단순..
👀 OverviewSpace club 프로젝트를 진행할 당시, 각 클럽 별 게시글을 작성하거나 공지, 댓글등을 작성할 때 금칙어가 포함되어 있을 경우 아래 그림과 같이 작성에 실패했다는 모달을 보여주며 작성에 실패하게 처리를 했었다.이때, 입력받는 값에 금칙어를 찾는 과정에 있어서 Trie 자료구조를 사용했는데, 그때의 생각프로세스를 정리해 보고자 한다.또한, 현재 프로젝트 코드레벨에서의 문제점은 없는지 고쳐 보려 한다.🔭 자료구조 / 알고리즘 선택하기!먼저 우리는 지금 구현해야하는것이 특정 문자열이 주어졌을 때, 해당 문자열에 금칙어가 포함되어 있는지 여부를 확인하고 싶다.먼저, 금칙어를 List 자료구조로 저장해 놓고 비교를 한다면, 금칙어 List 크기가 N이고, 입력받는 문자열의 길이가 M일때..
진행한지 꽤 되었지만, 늦은 프로젝트 회고를 진행해 보려고 한다.늦게 진행하는 이유는 조금씩 리팩토링을 진행한게, 이제서야 거의 끝맺음을 지은 것 같기 때문이다.1️⃣ 프로젝트는 어떤 프로젝트였는지?https://github.com/Space-Club/Backend GitHub - Space-Club/Backend: Backend Repository For Space ClubBackend Repository For Space Club. Contribute to Space-Club/Backend development by creating an account on GitHub.github.com누구나 동아리를 쉽게 만들고, 관리하며, 행사를 주최할 수 있는 서비스를 만들었다.https://spaceclub...
취준을 하면서 느낀 것이 하나 있는데, 부정적인 감정을 컨트롤하는게 정말 중요함을 느낀다.부정적인 감정은 학습 효율을 떨어뜨리고, 그러한 부정적인 감정이 객관적이고 이성적인 판단을 흐린다. 요즘 같이 취준하는 동료들을 보면서 느낀 점이 하나 있다.남들 하는 것은 무조건 다 하려는 것이다. 남들 다 하는걸 안하면 괜히 불안하다. 그러니 갈피를 못잡고 방황을 한다. 그래서 왜?라는 질문을 해야하는 것에 대해서 스스로 생각하고 올바른 답을 내릴 줄 아는 것이 필요함을 느낀다. 왜? 라는 질문을 하는 것이 이 막연한 불안감과 불확실함으로부터 나를 휘둘리지 않게 만들어 줄 것이다.왜? 라는 질문을 왜 하느냐는 이 때문이다. 답을 찾지 않으면, 안개속을 계속 헤매게 되는 것이기 때문에 왜라는 질문을 하고 답을 구..
내가 군대에 있을 때, 그 시기는 나에게 정말 소중한 시기였다. 끝없는 방황을 하던 내가, 주체적으로 스스로 생각하고, 사색하는 소중한시간이었다. 그때 관심있는 분야의 책들을 읽으면서 어떻게 살아갈 것이고 어떠한 가치관으로 살 것인지에 대해서 많이 생각했었다. 주변 사람들을 관찰하고, 사람들과 대화를 나누면서 사람들의 가치관이 다양하다는 것을 느꼈고, 주체적인 한 개인으로 전역 후 삶을 살아가기 위해서 내가 어떠한 가치들을 중요시 하는지 스스로에게 묻는 시간도 가졌었다. 그때 한 가지 질문, 나는 어떤 사람을 존경하는가?에 대해 생각해 보았다. 내가 어떠한 사람을 존경한다는 말은 내가 어떤 가치를 멋있고, 중요하시는지와 연결되어 있고, 그 존경하는 사람을 모방함으로서 성장하기 위한 목표가 되어 주기에 내..
Overview 현재 space club 프로젝트를 리팩토링 하며 하나하나 뜯어 고치는 중이다. 프로젝트때 나는 인프라 부분을 맡지 않았다. 팀원 중 한명이 인프라에 관심을 가지고 있던 친구여서 모든 백엔드 환경을 잘 구성해 줬었기에 스프링 애플리케이션 개발에만 집중할 수 있었다. 하지만 리팩토링을 진행하면서 좀 더 나은 방식을 적용할 수 있겠다는 생각이 들었고 이 모든 것을 바로잡고 블로그 글을 쓰기 까지 총 일주일이 넘는 시간이 걸렸다. 내가 이번에 프로젝트 리팩토링을 진행하면서 겪은 문제점은 두 가지이다. 1️⃣ HTTPS 설정 시, EC2에 Application Load Balancer를 통한 과금 문제 2️⃣ CI/CD 중 배포 문제 2-1. CI/CD 중 불필요한 파일이 S3에 업로드 되는 문..
👀 Overview Shared Lock과 Exclusive Lock은 S-Lock, X-Lock이라고도 하며, (읽기 락, 쓰기 락), (공유 락, 배타 락)이라고 불리기도 한다. 하지만 이 lock에 대한 내용을 학습하면서 여러 블로그들을 찾아봤는데, 잘못된 내용들이 정말 많았다! 그래서 그 내용들을 실제 내가 MySQL 쿼리를 통해 비교하면서 바로잡고, 파헤쳐 보기 위해서 글을 써야겠다는 결심을 했다. 🔐Shared Lock과 Exclusive Lock 먼저 앞 글에서도 언급했지만, InnoDB 스토리지 엔진 레벨에서의 Lock을 설명하면서 Shared Lock, Exclusive Lock의 개념이 나왔다. 특정 row에 lock을 걸면 레코드락, 여러 row에 range로 lock을 걸면 넥스크 ..
- Total
- Today
- Yesterday