본문 바로가기

개발기술/설계|디자인패턴

(6)
클래스 다이어그램 Intellij를 활용한 클래스다이어그램 생성  클래스다이어그램으로 만들고 싶은 클래스에서 오른쪽 마우스 클릭 - Diagram - Show Diagram을 누르면 다이어그램이 자동적으로 생성된다. 해당 클래스와 관계를 확인해보고 싶은 클래스들을 Drag&Drop으로 추가하여 Diagram 내용을 추가해줄 수 있다.   *아래내용은 사바라다님의 블로그 내용입니다. https://sabarada.tistory.com/72클래스 다이어그램의 기본 요소클래스 다이어그램을 그리기 위한 기본요소에 대해서 알아보도록 하겠습니다. 클래스에는 클래스의 이름, 속성, 그리고 메서드가 존재합니다. 이런 요소들은 어떻게 클래스 다이어그램에 표현할 수 있을 까요?접근제어자 리스트+ : public- : private# : p..
프로젝트 설계 및 문서화 IT비즈니스 프로세스  비즈니스 프로세스는 구체화정도에 따라서 사업 - 기획- 개발의 순서로 이루어진다. 회사의 주요 의사결정자들이 사업을 결정한다. (의사결정이 존재하기때문에 이에 따른 위계질서가 존재함) 사업방향이 결정되면 기획자들과 사업자들이 해당 시장에 대한 데이터를 모으고 논의를 하면서 사업의 구체화가 이루어진다. 사업이 충분히 구체화되면 기획단계로 넘어가고, 서비스의 객체와 기능, 범위, 프로세스 등을 정의한다. 기획단계가 마무리되면 개발자단계로 넘어가고 사업기획의 기술적 관점에서 가능여부를 검토하여 기획의 세부내용을 수정한다. 개발명세서검토 (은행계좌생성 예제)1.  기술스택 결정  개발자는 내부 개발자원을 감안하여 개발언어, 기술스택, DB종류, DBdrive 등을 결정한다. 2. 각 기능..
디자인패턴 디자인패턴 싱글톤패턴하나의 인스턴스만 사용되는 경우. 하나의 인스턴스가 사용되지 않는 경우에는 인스턴스의 멤버변수에 저장/입력된 값들이 다른 인스턴스에 공유되지 않는다.  이로인해서 예상한 데이터를 찾을 수 없어서 문제가 발생하기도 함.빌더패턴장점1 : Setter대신 빌더패턴을 사용하면, 한번 생성된 instance의 값은 변경되지 못하게 하여 thread safe를 확보할 수 있음장점2 : 순차적으로 field를 하나씩 설정할 수 있어서 readbility가 증진됨. 필요한 데이터만 설정할 수 있어서 유연성이 증가됨장점3 : 필요한 데이터만 설정할 수 있어서 유연성이 증가됨스태틱팩토리패턴  프록시패턴프록시 패턴의 핵심은 바로 인터페이스의 동일성을 유지함으로써, 클라이언트가 실제로 대리 객체를 사용하고..
성능 최적화 전략 성능저하의 원인프로그램이 어떤 자원을 많이 쓰는지에 따라 CPU바운드, I/O바운드 작업으로 나뉜다. I/O 바운드 작업은 디스크, 네트워크, 파일 시스템 등과 같은 입출력(I/O) 작업을 많이 요구하는 작업을 의미한다. CPU-바운드 작업은 CPU의 연산 능력을 많이 요구하는 작업을 의미한다. 주로, 실무에서는 CPU-바운드 작업 보다는 I/O-바운드 작업이 많다. 메모리 계층구조에 따른 소요시간계층구조에 따른 소요시간이 다르다. 외부 데이터 접근을 최소화하는 것이 백엔드 입장에서 가장 중요한 성능적 로컬 SSD/HDD 접근 (디스크 I/O)SD: 100 ~ 500 마이크로초.HDD: 수 밀리초.내부 데이터베이스(DB) 접근 : 약 50,000 ~ 500,000 CPU 사이클(수백 마이크로초 ~ 몇 밀..
Java programming OOP 연습케이스(1) 리팩터링을 통해서 객체지향적 사고관을 기르는 연습을 해보자.import org.w3c.dom.ls.LSOutput;import java.time.LocalDate;import java.time.DayOfWeek;import java.lang.reflect.Array;import java.util.Scanner;public class Calendar { public static void main(String[] args) { // receive user input and set default value Scanner input = new Scanner(System.in); System.out.println("달력의 년도를 입력해 주세요. (y..
Spring 도입배경 - 객체지향 디자인원리 자바에서 스프링 프레임워크로자바프로그래밍 : 개발자가 직접 모든 객체와 동작을 수행시킴 ; 모든 코드 환경을 개발자가 통제하는 환경프레임워크 : 외부에서 개발된 코드와 규칙에 따라서 개발자의 코드를 로드하는 방식으로, 개발자가 요소를 모두 통제하지 못함.웹프레임워크 : 동적인 웹서비스를 개발하기 위해서 데이터베이스 연동, 템플릿 형태의 표준, 세선관리를 위한 프로그램.My code call library but framework call my code. 외부의 코드재사용이라는 관점에서 라이브러리와 공통점이 있으나, 개발자가 따라야하는 더 정형적인 규칙이 정해져있다는 측면에서 라이브러리와 다르다. OOP 객체지향 프로그래밍객체지향프로그래밍 : 명령어의 목록이 아니라 독립적인 객체의 집합으로 보는 관점.  ..