MSA 구조를 사용하는 회사들이 늘어나고 있는 것 같습니다. 이에 MSA의 기본 개념은 무엇인지 공부해보려 합니다. 마이크로서비스란 무엇인가? 먼저 전통적인 시스템 구조인 모노리스(Monolith) 구조부터 살펴보자. 모노리스는 하나의 단위로 개발되는 일체식 애플리케이션이다. 그림 1과 같이 보통 3티어라 불리는 사용자 인터페이스와 데이터베이스, 서버 쪽 애플리케이션 3개 부분으로 구성된다. 티어: 보통 티어(tier)는 서버와 같은 물리적인 분리를, 레이어(layer)는 논리적인 분리를 말한다. 하나의 티어 내부를 여러 개의 논리 레이어로 나눌 수 있다. 서버 측 애플리케이션이 일체, 즉 논리적인 단일체로서 아무리 작은 변화에도 새로운 버전으로 전체를 빌드해서 배포해야 한다. 그리고 일체식 애플리케이션..
Origin Access Identity(OAI)만 S3에 오브젝트를 조회할 수 있도록 Cloudfront를 배포했다. 젠킨스를 통해 S3에 Javascript SPA를 CI/CD 해야 하는데 aws s3 명령어가 "Access Denied" 되어 난감했다. 어떻게 해결해야 할까? AWS cli에는 --profile 옵션을 사용할 수 있으며, Credentials 파일에서 특정 profile을 사용하는 것이다. aws s3 ls s3://[버킷명] --profile [profile] .aws/credentials 파일에 profile을 추가할 수 있으며, default가 기본으로 잡혀있는 것 같다. "user1" 를 추가하는데, 아래와 같은 조건이 있다. - s3를 다룰 수 있는 권한을 가진 프로그래밍 ..
나는 전문대 전자과를 전공했다. 전자과에서도 c언어를 배우지만 웹 개발자가 될 수 없었다. 졸업학년이 돼서야 학원을 다니며 웹 개발 강의를 들었고, 국비지원 사업으로 학원의 심화과정을 거쳐 웹 개발자로 취직하게 되었다. 보통 4년제 컴퓨터공학과나 3년제 소프트웨어과, 또는 실업계 고등학교 졸업 후 개발자로 취직한다고 알고 있다. 살면서 개발의 흥미를 갖게 되어 개발자가 되고 싶을 수도 있다. 하지만 주변에 조언을 구할 사람이 없는 사람도 있을 것이다. 그런 분들에게 조금이나마 도움이될까 글을 써본다. 해당 글은 2016 ~ 2017년도의 경험을 바탕으로 작성하였으므로 지금 상황과 달라져 있을 수 있다. 개발자가 되기로 결심하는 계기가 있을까? 전자과 학생의 진로는 소프트웨어, 하드웨어 2개로 나뉘는 것으..
데이터베이스를 장기간 사용하다 보면 불필요한 로우 데이터가 쌓여 용량을 많이 차지하는 경우가 있다. 대용량 테이블을 조회하여 불필요한 데이터를 정리할 수 있다. 조회하는 방법을 알아보자. SELECT table_name , table_rows , round(data_length/(1024*1024),2) AS "DATA_SIZE(MB)" , round(index_length/(1024*1024),2) AS "INDEX_SIZE(MB)" FROM information_schema.TABLES where table_schema = "DATABASE_NAME" GROUP BY table_name ORDER BY data_length DESC LIMIT 10; infomation_schema 데이터베이스에 TA..