본문 바로가기

Architecture3

어플리케이션 아키텍처 2) 유지보수성(Maintainability) 소프트웨어 개발 이론에서 유지보수성을 고려해서 개발해야한다고 전통적으로 종종 언급된다. 유지보수를 고려하지 않는다면 어떻게 될까? 기능개발에 있어서 단순 동작만을 생각한다면 오히려 유지보수를 고려한 코드보다 더 개발하기 쉽고 빠르다. 어느정도 개발을 경험하다보면 대부분 느끼게 될것이다. 글쓰기에 비유하자면, 당연히 편집이나 교정할 필요가 없이 글을 일단 말이 되는대로 표현하고자 하면 금방 책을 쓸수 있듯이 말이다. 그렇다면 유지보수성을 높이고 싶다면 이론적으로 어떻게 정리 할 수 있을까? 대표적으로 언급되는 것이 낮은 결합(loose coupling)과 높은 응집(high cohesion)이다. 응집도는 모듈이나 클래스 등의 요소간에 서로 속하는 정도를 말한다. 관련 코드는 서로 가까이 있도록 높은 응집.. 2020. 6. 24.
애플리케이션 아키텍처 1) 객체지향과 절차지향, 용어 간단정리 1. 객체지향과 절차지향의 차이 각각 장단점이 있다. - 절차 지향 트랜잭션 스크립트(transaction script) - 객체 지향 모델로 설계시 (https://medium.com/swlh/creating-coding-excellence-with-domain-driven-design-88f73d2232c3) 2. 용어 정리 도메인이란 도메인은 일반적인 요구사항, 전문 용어, 그리고 컴퓨터 프로그래밍 분야에서 문제를 풀기위해 설계된 어떤 소프트웨어 프로그램에 대한 기능성을 정의하는 연구의 한 영역이다. 도메인 엔지니어링 이라고도 알려져 있다. 위키백과 비지니스 로직 비즈니스 로직(Business logic)은 컴퓨터 프로그램에서 실세계의 규칙에 따라 데이터를 생성·표시·저장·변경하는 부분을 일컫는다... 2019. 12. 16.
[JWT, Oauth]서브 도메인 분리와 인증 인가 서버 설계 소개 기존에 서비스A와 추가 개발 진행하고 있는 서비스B의 도메인이 추가하게 됨과 동시에, 통합 인증인가를 위한 서버를 별도로 구성하기하였다. 기존 : www.domain.com 신규 : sub.doamin.com 서버의 구성은 다음과 같다. 각 서비스의 인증과 인가는 Auth Server와 통신하여 이루어 질 것이다. 여기서, 인증 권한은 크게 세션 과 토큰으로 나누어진다. 세션 VS 토큰 1. 세션 세션으로 했을때 크게 두가지의 방법이 있다. 1) 세션 복제 ( 네트워크를 통해 동기화) 2) 중앙 집중식 세션 스토리지 ( Reds 등의 세션 저장소) 나는 톰캣의 세션 클러스터링을 통해 세션을 복제하는 방법을 사용한적이 있다. 네트워크 상태에 따라서 세션이 복제하는데 애를 먹은적이 있다. 원활한 통신환경이 .. 2019. 4. 9.