[간단 기본구조]client는 Route53에 등록된 도메인을 사용하여 ALB와 HTTPS 통신을 한다.ALB는 EC2와 HTTP 통신을 한다.초기 결과물이기 때문에 인스턴스는 1개로 제한한다.도메인 구매 후 Route 53에 연동 [디폴트 화면]
티메프 사태를 바라보며 많은 생각들이 오고갑니다.저는 한 때 티몬에서 개발자로 일했습니다.티몬 이직시 너무 기뻐하며, 가족들과 축하파티 했던 기억이 납니다.일반 사용자가 사용하는 이커머스에서 많은 트래픽을 경험할 수 있다는 부푼 꿈을 가지고 있었습니다.그 때는 코로나 시즌으로 IT시장이 참 좋았던 시기였습니다.당시 티몬은 내실을 다져 상장을 한다는 꿈을 가지고 있었습니다.결국 실패했지만요.그 때도 티몬은 매우 적자가 심한 기업이었어요. 왠지 망할 것만 같았습니다.망할 것 같은 회사에 몸을 맡기는게 쉽지 않았습니다.그 때 많은 직원들의 이탈이 발생했습니다.입사한 지 얼마 안된 시점부터 정말 많은 인원들이 퇴사를 결정했습니다.그 때는 이게 IT회사의 특징인가? 정도로 생각했고,저 역시 불안함에 이직을..
쿼리를 작성하다보면 막연한 의문이 든다.. Where 조건을 작성하는 순서에 따라 성능에 영향을 미칠까? 혹은 INNER JOIN 순서가 성능에 영향을 줄까? 결론은 NO! 쿼리최적화 과정에서 순서를 맞춘다. SELECT * FROM member m WHERE m.age 0 and (100/m.age > 0) SELECT * FROM member m WHERE (100/m.age > 0) and m.age 0 where절 순서는 query optimizer가 적절히 변경해준다. 0으로 나누어 에러를 발생하는 경우를 발생시켜도 알아서 쿼리 순서를 최적화 시켜 실행시켜준다! SELECT * FROM member as m INNER JOIN organization as o ON m.organizationID ..
https://fearless-hardboard-bd6.notion.site/Document-26266e6d385d4ee19e024644ec4cb0be 코인사조 Document 프로젝트 주제 fearless-hardboard-bd6.notion.site [AWS Architecture] MSA 인사이트를 얻을 목적으로 시작한 사이드프로젝트 후기를 작성합니다. 주제는 코인 자산 관리 시스템(~ 다양한 거래소의 코인을 모아서 보여주는 앱)을 간단하게 만들어보기로 했고 프론트 1명, 백엔드 3명이서 작업을 진행했으며, 백엔드 영역에서 커뮤니티 도메인과 자산 도메인의 일부를 담당했습니다. 첫 3주 동안은 EDA(Event Driven Architecture), DDD(Domain Driven Developmen..
MSA에 대한 학습을 진행하기 위해 MSA에 대한 개요와 리엑티브 프로그래밍을 학습했다. Async + Nonblocking, Publish, Subscribe, webflux 등 MVC가 아닌 생소한 백엔드 개발 영역 학습을 진행했다. 첫 주차, 과제 리엑티브 프로그래밍 실습을 진행하며, reactor의 각 종 연산자, publisher, subscribe, schedule로 쓰레드 관리를 이해하고 실습해보았다. 완벽히 이해하고 사용하는 실습은 아니어서, 아직 부족한게 많지만 조금씩 더 채워나가야 겠지.. :) /** * ["Blenders", "Old", "Johnnie"] 와 "[Pride", "Monk", "Walker”] 를 순서대로 하나의 스트림으로 처리되는 로직 검증 */ @Test pub..
Shell Script로 환경설정 자동화를 진행하다보면, 한 번에 모든 것을 설치하는 방법으로 진행 할 수도 있지만 그 때, 그 때 상황에 따라 무엇을 설치 할 지, 무엇은 설치 안할지에 대해 시나리오를 세울 필요가 있습니다. 그래야 작성한 스크립트를 유연하게 사용 할 수 있겠죠? 그렇기 위해서는 질문을 하고 셋팅을 진행 할 지 말지를 묻는게 가장 기본이 됩니다. 최근 쉘 스크립트로 환경설정 자동화 스크립트를 작성하며 시나리오를 만들고 있습니다. 간략히 말해 jdk를 설치하시겠습니까? nginx를 설치하시겠습니까? 뭐 그런 질문에 대한 순서와 응답이죠. 질문에 대해 응답을 하는 가장 간단한 방법은 응답에 대해 read 문법을 사용해 값을 읽는 방법이 있습니다. echo "please, write your..
function JDK_INSTALL { #JDK 버전 확인 java -version rt=$? if [ "$rt" -ne 0 ] then # 파일 압축 해제 gzip -d $DIR/jdk-8u191-linux-x64.tar.gz # TAR 풀기 tar -xvf $DIR/jdk-8u191-linux-x64.tar -C $DIR #JDK 경로로 JDK 이동 mv $DIR/jdk1.8.0_191 $jdkDIR #=================== JDK 경로 설정 (/etc/profile 하단에 경로 등록) =============== echo -e "\n\nexport JAVA_HOME=/usr/java/jdk1.8.0_191" >> /etc/profile echo -e "\nexport JRE_HOME=..
1) dependency 등록 2) config 등록 3) controller에 api 작성 annotation 등록으로 가능하다. io.springfox springfox-boot-starter 3.0.0 먼저 pom.xml에 io.spring.fox를 dependency를 등록한다. @Configuration public class SwaggerConfig { @Bean public Docket api(){ return new Docket(DocumentationType.SWAGGER_2) .useDefaultResponseMessages(false) .apiInfo(getApiInfo()) .select() .apis(RequestHandlerSelectors.any()) .paths(PathSel..
백엔드 개발자라면 알고 있어야 할 RESTful API 문서 만들기~ 처음에는 API문서 만드는 툴로 많이 사용한다는 Swagger만을 시험삼아 적용해 볼 생각이었지만 현재 어떤 툴이 있는지 정도는 알고 넘어가야 하지 않을까 라는 마음으로 가볍게 서칭을 해보고 어노테이션 기반으로 Rest api 문서를 만드는 Swagger를 시험삼아 Spring에 적용해보기로 했다. 검색해보며 괜찮은 툴이 많다는 것을 알게되었다. 1. Swagger https://gngsn.tistory.com/69 Node.js + Swagger, 어렵지 않게 사용하기 안녕하세요 ! 오늘도 node 서버와 관련된 게시글을 작성하려고 합니다 〰️ 오늘은 swagger에 사용법에 대해 알아보겠습니다 ~.~ 그동안,,, API 명세서 작성..
매주 목요일 개발 스터디를 진행하고 있습니다. 5명이 진행하며, 코로나 때문에 게더타운에서 진행 한 지 벌써 두 달이 다 되어가고 있습니다. 당연시 여기는 개발 지식이나 서로의 회사에서 사용하는 개발방법론 등을 가지고 이야기 나눕니다. 오늘은 대략 10가지 정도의 주제를 가지고 이야기를 나누었는데요. 그 중에서 기억이 남는 내용을 가지고 정리를 해봅니다. 1. CI/CD의 대해 설명해보자. CI/CD를 정의할 때, 우리는 CI 까지만 구축되어 있어! 혹은 CI/CD 모두 구축되어 있어라고 간혹 개발자들 사이에서 듣게 되는 용어입니다.저도 역시 이 용어의 범위가 매우 헤깔렸기에, 대화들이 기억에 많이 남습니다. CI는 지속적인 통합, CD는 지속적인 배포를 의미하며 통합과 배포의 자동화를 의미합니다. 저는..
개발자의 필독서라고 선정될 만큼, 개발자로서 태도/마인드/전략에 대한 이야기를 담고 있습니다. 개발자로서 답답함이 많은 요즘, 저에겐 이 책 한권이 힐링으로 다가옵니다. 그 중에서도 눈길이 가는 세 이야기를 발췌했습니다. 1. 제자리 걸음 벗어나기 ( 성장!(몰입)하는 환경으로 변화하기 ) 개발을 할 때 실력과 작업난이도가 비슷하면, 작업에 몰입할 수 있고 성장 할 수 있는 환경이라고 합니다. 그런데, 비슷하지 않으면 지루함이나 불안함을 느끼게 됩니다. 지루함과 불안함을 느끼면, 성장할 수 없는 환경이라고 필자는 말합니다. 지루함을 느끼는 케이스는 "실력 > 작업의 난이도"인 케이스이고, 불안함을 느끼는 케이스는 "작업의 난이도 > 실력"인 케이스 입니다. 이 두 케이스에 대해 몰입이 가능한 상태로 가기..
최근 회사 제품의 개선안을 조사할 당시 배포자동화를 위해 Docker를 조사하게되었다. Docker의 컨테이너 안에 jar, jdk, postgreSQL 등을 설치 해놓고 Docker hub에 push 후 pull 한다면, 솔루션을 새로운 곳에 배포 할 때 혹은 신규입사자가 들어왔을 때 한 번에 개발환경을 구축할 수 있을 것이라는 기대감 때문이었다. 하지만, 아쉽게도 환경셋팅 자동화를 쉘스크립트로 하자는 의견으로 좁혀졌다. 수 많은 사용자가 있는 서비스들도 쿠버네티스, 도커를 통해서 Devops 하고 있는 시점에 쉘스크립트로만 환경셋팅을 자동화하자는 말이 매우 아쉬웠다. 하지만, Docker를 조금이라도 사용할 수 있게 되었다. 쉘스크립트 작성 및 환경설정 테스트를 개발서버에서 자유롭게 진행하기에는 다소..