Software Architecture Patterns 시스템의 설계, 구조, 행동을 결정하는 일련의 설계 원칙과 같은 가이드라인의 집합이다. 이런 가이드라인은 시스템을 효율적으로 구성하고 유지보수 할 수 있도록 돕는다. 오늘은 이중 요즘 뜨고있는 MSA와 많이 쓰인다고 볼 수 있는 Monolithic에 대해서 알아보려고 한다. 1. Monolith Architecture 단일체 아키텍처라고 부른다. 모든 업무 로직을 하나의 코드베이스로 묶어서 서비스하는 방식이다. 즉 하나의 큰 단일 단위로 개발하고 배포하는 방식이다. 쇼핑몰을 예로 들자면 하나의 App에 쇼핑, 결제, 회원관리등 BusinessLogic, Data Access, User Interface모두가 한 App에 들어가 있다. 장점 하나의 코..
오늘은 다른 알고리즘에서 많이 사용되기 때문에 꼭알아야할 자료구조인 Stack과 Queue에 대해서 알아보자 Stack 퇴적(堆積) 스택 어떤 것을 쌓아 올림을 뜻하는 단어이다. 데이터들을 저공간에 쌓아 올리는 방식이다. 코딩에서는 list 즉 배열에 데이터를 담는 방식이다. array = {1,2,3,4,5}; stack = {1,2,3,4,5}; 위 코드는 배열과 스택에 1부터 5까지의 정수를 담아뒀다. 2개는 차이가 없다. stack은 array와 값을 저장하는 방식이 같다. 그럼 왜 stack이라고 부를까? LastInFirstOut(LIFO) 즉 마지막으로 담은 데이터를 처음으로 빼는 배열이 있다면 그것이 바로 stack이다. 이를 후입선출 이라고 부른다. 1. 스택 동작 방식 스택은 크게 2가..
RESTful API라는 것은 시스템이 인터넷을 통해서 정보를 교환할때 사용하는 인터페이스이다.소프트웨어끼리 통신할때 사용하는 표준이라고 생각하면 된다.추가적인 설명을 보자1. API란?application programing interface 즉 API는 소프트웨어끼리 통신할때 지켜야할 것들이 있다면 이를 정의한 규칙이다.데이터를 어떤 방식으로 주고 받을 지 정하는 방식이다.웹 API는 2가지 계층으로 나뉘게 되는데 클라이언트웹에서 정보에 엑세스 하려고하는 사용자이다.리소스다양한 애플리케이션이 클라이언트에 제공하는 데이터이다. 이떄 클라이언트에게 데이터를 전송하는 시스템을 server라고 한다.장점으로는 리소스의 출처에 대해서 자세히 알 필요가 없다는 것에 있다.2. REST란?REST란 Represe..
GitHub - parkswon1/Studyapp: 공부 많이 했어 앱 개발 명세서 공부 많이 했어 앱 개발 명세서. Contribute to parkswon1/Studyapp development by creating an account on GitHub. github.com 다음은 내가 작성한 공부 시간 기록 어플리케이션 프로젝트 "공부 많이 했어?" 앱 시스템 설계 문서이다. 공부 많이 했어? 공부로 얻는성취감에는 얼마나 공부했는지 기록하는 것도 있다고 생각한다. 공부를 컴퓨터로 주로 많이하는 나는 컴퓨터 타이머로 시간을 기록할 때가 있다. 집중하는 시간만 딱 껏다가 키는 용도로 사용한다. 근데 휴대폰 어플리케이션중에는 컴퓨터(Window) 환경에서 돌아가지 않는다. 도서관에 가서 공부할 때는 휴대..
재귀함수 재귀함수(再歸函數, recursion) 어떤 것을 정의할 대 자기 자신을 참조하는 것을 뜻한다. 즉 함수가 자기 자신을 계속 호출한다는 의미이다. recursive라는 함수가 있다고 생각하자. recursive는 자기 자신을 다시 호출한다. 함수 recursive(int x){ recursive(int x + 1) } 간단히 다음과 같은 방식을 따른다. 이를 그림으로 한번 보자. 재귀적 호출을 통해서 자신의 함수속에 또다른 함수를 실행하고 가장 늦게 실행된 함수부터 먼저 재귀 반환한다. 이번엔 예시코드로 동작 방식을 보자. 1. 재귀함수 동작 방식 재귀함수는 크게 4가지 방식을 따른다. 물론 이방법에서 순서는 코드에 따라서 변경될 수 있다. 값을 받는다. 종료 조건을 설정해서 종료될지 중지될지 ..
abstract는 추상이라는 개념이다. 객체를 직접 생성할 수 있는 클래스를 실체 클래스라고 한다면 이 추상 클래스는 클래스들의 공통적인 특성을 추출해서 선언한 클래스이다. 예를 들어서 생물의 특징을 적는 class들이 있다고하자. Bird, Insect, Fish등이 있을 때 이들의 공통되는 필드와 메소드를 모아둔 것이 추상 클래스이다. 여기서는 Animal.class라고 하자 이때 Animal 클래스를 Bird, Insect, Fish들이 상속하게 된다. Animal animal = new Animal(); 추상 클래스인 Animal은 다음과 같이 new연산자를 사용해서 인스턴스를 생성할 수 없다. 실체 클래스들의 공통된 필드와 메소드의 이름을 통일할 목적으로 사용 실체 클래스를 작성할 때 시간을 절..