본문 바로가기

분류 전체보기120

도메인 주도 설계란 (DDD) 등장배경이전의 기술 중심의 설계에서는 핵심 비즈니스 로직과 부가적 로직을 분리하지 않고 개발을 했다. 작은 서비스의 경우, 크게 문제가 없었지만, 시간이 지남에 따라, 로직들이 엉키고 각 객체간 의존성이 복잡하게 엮여있어 각각의 경계가 사라지고, 여러가지 문제가 발생하게 되었다. 특히 실무에서 흔하게 발생하는 요구사항이 바뀌거나, 비 개발자와 소통 시 서로 간 오해가 발생하고 비용이 증가되어 버렸다. 도메인 전문가와 개발자가 서로 협력해 해당 도메인 모델을 정의해 구분하고, 이를 활용해 소프트웨어를 개발/설계 하는 방법론이 DDD이다. 도메인(Domain)도메인이란, 소프트웨어로 해결하고자 하는 핵심 비즈니스 영역으로써, 예를 들면 은행업무에서의 도메인 영역은 계좌 이체, 잔액 조회, 계좌 개설과 같이 .. 2025. 10. 26.
자바 코딩테스트 여러가지 팁 큐나 스택 구현체로 ArrayDeque를 선택하자, 접근, 삽입/삭제 O(1)로 더 빠르다.string.split() 사용하지말고 StringTokenizer 사용입출력시, Scanner, sout 사용 X, BufferedReader와 Writer를 사용하자.순회 전에 배열 전체 초기값을 -1로 정하고, 반대로 조건에 부합하는 경우에만 값을 변경. Arrays.fill(arr, -1);커스텀 정렬 시, Arrays.sort(arr, (a, b) -> { a[1] - b[1] }); (2번째 파라미터는 Comparator 람다식 구현)음수라면, a가 먼저 배치, 양수라면, b가 먼저 배치,우선순위 큐 (힙)로 정렬 할 수도 있다. PriorityQueue pq = new PriorityQueu.. 2025. 9. 15.
프로젝트 관리 일정 계획과 작업- 작업의 분할- 작업의 명세화 작업의 양을 인원-월(PM)로 표시함, 1PM은 중급 수준 개발자의 한 달간 작업량- 작업 진행 순서의 정의 (PERT/CPM 도표)- 인력 배정- 비용 산정- 개발 일정의 수립 (CPM -> 간트차트로 도표화) WBS- 작업 분할 구조, 계층 구조로 표현- 최하위 수준의 작업을 작업 패키지라고 한다. 정량적 측정이 가능한 입출력물을 가짐 PERT- 작업들의 선후 관계를 표현한 사이클이 없는 방향 그래프CPM : 임계경로 방법- 일정 계획을 위한 알고리즘적 분석 방법- 임계경로는 시작, 종료 작업까지의 경로 중 가장 긴 경로- 임계 경로상의 작업들은 지연이 허용되지 않는 작업 CPM 네트워크 간트 차트- 막대 모양으로 작업들의 순차, 병행 순서를 보.. 2025. 3. 11.
소프트웨어 프로세스 프로세스 활동- 명세 : 기능과 제약 조건- 개발 : 설계, 프로그래밍- 검증 : 요구 사항 충족- 진화 : 고도화, 변경 폭포수 모델- 고전적 소프트웨어 생명 주기- 각 단계는 병행 수행 X, 한 방향으로 진행됨- 수정을 위한 앞단계로의 피드백이 필수 폭포수 흐름- 타당성 조사 - 요구 분석과 명세 : 명세서(SRS), 시스템의 목적과 범위, 기능적 요구사항, 비기능적 요구사항, 기타 제약 조건 등 - 설계와 명세 : what 을 how 로 변환하는 작업, 아키텍쳐 설계, 인터페이스 설계, 모듈 설계 등, 객체지향 설계 방법, 전통적 설계 방법(구조적 분석) - 코딩과 단위 테스트 : 구현된 모듈이 명세를 만족하는지 테스트, 코딩표준의 준수, 테스트 절차의 준수, 코드 인스펙션(눈으로 검사, 정적 .. 2025. 3. 11.
소프트웨어 개발 분류- 시스템 소프트웨어 : OS, 장치 드라이버, 컴파일러, DBMS, 유틸리티 프로그램 등- 응용 소프트웨어 : 웹, 사무용 SW, 게임 SW, MIS, ERP 등 사용자에 따른 분류- 일반 소프트웨어 : 패키지 소프트웨어, 요구사항이 일반적, 상용제품- 맞춤형 소프트웨어 : 특정 고객을 위한 주문 제작, 응용 도메인, 프로세서 제어, 교통 관제 등 응용 분야- 실시간 소프트웨어- 내장형 소프트웨어- 비즈니스 소프트웨어- 개인용 소프트웨어- 인공지능 소프트웨어- 웹 기반 소프트웨어- 공학/과학용 소프트웨어 요구사항 명세, 설계 프로젝트 관리의 중요성- 문서화, 명세화, 재사용을 염두에 둔 작업이 필요 소프트웨어 공학 환경의 구성- 소프트웨어 공학 원리추상화, 분할정복, 계층적 조직의 원리- 방법과 기.. 2025. 3. 11.
대화 상자 AlertDialog- 안드로이드 플랫폼이 사용자에게 특정 메시지를 출력하고 사용자의 의사를 전달받을 수 있는 인터페이스를 제공하는 위젯- Toast와 비슷하지만 사용자와의 상호작용 이라는 점에 차이가 있음 AlertDialog 생성자- 생성자는 protected로 숨겨져 있고, Builder로 생성해야한다. - AlertDialog.Builder(Context context)- setMessage, setTitle, setIcon, setPositiveButton 등 Builder- AlertDialog show() 메서드를 통해 AlertDialog를 보이게 하거나 create() 메서드를 통해 생성할 수 있음- Builder 객체의 create메서드는 AlertDialog를 생성만하고 화면으로 출력.. 2025. 3. 4.