본문 바로가기

전체 글93

IT 연합 동아리 SOPT(솝트) 30기 서버파트 합격후기 포항항 30기를 수료하였지만, 붙기까지 많은 도움을 받았던 수많은 블로그들처럼 조금이나마 도움이 되고자 후기를 올립니다. 정말 솝트 덕에 좋은 사람들도 많이 얻어가고, 많이 성장할 수 있었답니다. 🥰 0. 지원하게 된 계기 더 많은 프로젝트 경험을 하고 싶었습니다! 학교에서 동기들끼리 하는 데에는 기획이나 디자인, 부가적인 부분에 대해서도 많이 시간을 쏟다보니 뭔가 개발에만 딱! 집중하여 프로젝트를 했던 적이 없었는데 이번 기회에 그런 경험을 원했습니다. 솝트는 기획, 디자인, 프론트, 백엔드 각 파트별로 인원을 모집해서 같이 배우고 성장하여 하나의 프로젝트를 완성한다는 점에서 함께 하고싶었습니다. 1. 서류 전형 서류 질문 (8문항) 먼저, 30기 핵심가치가 실천/연결/발전 이었기 때문에 해당 내용에 .. 2022. 8. 18.
chap 1. Docker를 왜 사용할까? contents 💡 대체 왜 많은 회사와 프로젝트가 도커를 선택하고 사용하는가 !! 1. 애플리케이션의 개발과 배포가 편리 독립적인 개발 환경 보장 서버를 처음에 할당받아 설정할 때 많은 설정이 요구됨. OS, 라이브러리, 컴파일러, 패키지 등 버전이 변경될 때마다 다시 재설정 필요 우리는 가난한 대학생. 호스트 OS, 즉 우리 PC를 서버 PC로 하고 이것 저것 깔면? 눈물의 대환장 파티가 일어날 수 있음 그럼 서버 설정에 대한 부분을 도커 컨테이너 위에서 진행하면? 도커 컨테이너에 여러 소프트웨어를 설치하고, 설정 파일을 수정해도 호스트 OS에는 영향을 미치지 않음 개발/운영 환경의 통합 개발 시 컨테이너 내부에서 작업을 하고, 배포하려고 한다면? 이 내부 작업을 ‘도커 이미지’라고 하는 일종의 패키.. 2022. 8. 18.
Express, mysql2 코드 모듈화하기 (with 트랜잭션) 하게 된 계기 릴리즈를 진행한 프로젝트에서 서버 개발자를 담당하였는데, db에 쿼리를 날릴 때 반복적인 부분(커넥션 풀 생, 반납, 트랙잭션)이 많아서 리팩토링을 맘 먹게 되었다. 프로젝트 구조는 다음과 같다. 먼저 nodejs + express에 mysql을 orm이 아닌 mapper 방식으로 사용하고 있다. 언어는 Javascript를 사용 중에 있다. 왜 orm을 안썻냐면, sql로 직접 쿼리문을 날리면서 공부를 하고 싶었다. 사용 언어에 따라 객체지향 프로그래밍을 하고 있지 않아서 의미가 없다고 생각했다. 📦src ┣ 📂config ┃ ┣ 📜db.js ┣ 📂controllers ┣ 📂models //여기서 db 접근 ┣ 📂routes ┣ 📂utils ┣ 📜app.js ┃ 📜.eslintrc.js .. 2022. 8. 18.
CodeDeploy 이해하고 푸쉬 서버와 API 서버 분리하기 해당 글에서는 AWS CodeDeploy와 팀 하우스 서버들이 CICD를 푸쉬 알림 서버와 연결하면서 발생했던 문제를 다룹니다. 👊 AWS CodeDeploy가 대체 뭔데? AWS CodeDeploy는 Amazon EC2 인스턴스, 온프레미스 인스턴스, 서버리스 Lambda 함수 또는 Amazon ECS 서비스로 애플리케이션 배포를 자동화하는 배포 서비스입니다. AWS CodeDeploy를 통해 Amazon EC2, AWS Lambda 또는 Amazon ECS에 코드를 배포하는 데는 추가 비용이 부과되지 않는다고 합니다. CodeDeploy는 서버에서 실행되고 Amazon S3 버킷, GitHub 리포지토리 또는 Bitbucket 리포지토리에 저장되는 애플리케이션 콘텐츠를 배포할 수 있습니다. CodeD.. 2022. 8. 18.
슬랙에서 서버 에러 알림 받고 유연하게 에러 대응하기 해당 글에서는 Nodejs 환경에서 슬랙 알림을 전송하는 과정에 대해서 다룹니다. 그렇다면 이게 왜 필요할까요? 사실 이건 개발하는데에 있어 꼭 필요한 부분은 아니지만, 이후 유지보수 시에 편리하게 사용될 수 있습니다! ec2에 우리의 서버를 올려두면 매일 들어가서 로그를 확인하거나 클라 분들께서 엇?! 서버 에러 났는데요?! 해야 확인이 가능한데 아주 크리티컬한 서버 에러의 경우는 슬랙 알림을 추가한다면? 바로바로 슬랙을 보고 서버 에러가 났네? 하면서 코드를 수정할 수 있겠죠? 저는 아주 유용했어서 우리 섭섭이들에게 추천드릴까 글을 적어봅니다. 슬랙이 있어야만 설정이 가능하다는 점 ..... 슬랙 웹훅(Webhook) 추가 서버 에러를 받을 채널 추가하기 서버 에러를 받을 팀슬랙에 새 채널을 추가해줍.. 2022. 8. 18.
[lock]MySQL user-level lock vs Redisson MySQL user-level 장점 1.redisson을 이용할 때보다 MySQL user-level의 분산락을 이용하는게 빌드 속도가 더 빠름 2.추가 DB에 대한 비용 발생 X 3.선언적 트랜잭션 사용 가능(@Transcational) 단점 1.별도로 스레드를 생성해서 락을 걸어줘야 하는 단점 1개의 스레드(요청) - 1개의 lock이 걸리도록 동작해야 하므로 Redisson 장점 1.구현이 편리 2.가독성 좋은 코드 단점 1.빌드 시 지연 발생(MySQL user-level의 분산락이 더 빠름) 2.추가 DB이므로 비용 발생. 캐싱 등 redis의 기능을 적극 활용한다면 비용이 아깝지 않겠지만, 분산락만 이용한다면 아깝지 않을까... 3.선언적 트랜잭션 사용 불가 TranscationManager를.. 2021. 11. 23.