분류 전체보기

    [소프트웨어 공학] 디자인 원칙 SOLID

    [소프트웨어 공학] 디자인 원칙 SOLID

    로버트 마틴 5가지 원칙 SRP, OCP, LSP, ISP, DIP SRP(Single Responsibility Priciple) 단일 책임 원칙 클래스는 하나의 책임(수행 작업)만 부여 하나의 작업을 모두 수행 클래스 변경(수정) 씨 변경 이유도 하나 OCP(Open Closed Priciple) 개방 폐쇄 원칙 기존 코드의 변경 없이 새로운 기능 추가 독립적인 작업 단위를 클래스로 분리, 캡슐화 LSP(Liskov Substitution Priciple) 리스코프 치환 원칙 기반 클래스와 파생 클래스에서 제공하는 연산은 일관성 있는 행위(behavior) 여야 함 기반 클래스 인스턴스를 파생 클래스 인스턴스로 대체해도 프로그램의 의미 불변 Pre -> Pre` & Post` -> Post (if P..

    [소프트웨어 공학] 의존성 주입과 IoC

    [소프트웨어 공학] 의존성 주입과 IoC

    클래스 간의 의존관계 1 한 클래스가 실행할 때 다른 클래스의 서비스가 필요 public class Driver { // Driver.java private Car m; public Driver() { m = new Car(); } // 생성자 public void drive( ) { m.engineOn(); m.go(); m.stop(); m.engineOff(); } } // ↕ 높은 결합도 public class Car { // Car.java public void engineOn( ) { System.out.println(“Car engine started.”); } public void go() { System.out.println(“Car goes.”); } public void stop() ..

    [소프트웨어 공학] Maven

    [소프트웨어 공학] Maven

    Maven 이란? 빌드 자동화 도구(프로젝트 관리, 라이브러리 관리) 일반적인 빌드 과정 절차 소스코드 컴파일 테스트 프레임워크를 이용한 테스트 배포 가능한 형태(.jar, .war)로 패키징 지역/원격 저장소로 배포 빌드 결과 등의 레포트 생성 Maven의 빌드 라이프 사이클 처음 단계부터 해당 단계까지 순차적으로 실행 골(Goal): 각 단계(Phase)에서의 수행 작업 (플러그인:골) 플러그인(plug-in): 각 단계에 연결되어 골들을 실행 pom.xml(project object model): 프로젝트 root에 존재하는 파일로, 프로젝트 정보 및 의존성 관리, 단계별 골 설정 Maven의 표준 라이프 사이클 default: 기본적인 빌드 절차 report: 프로젝트 문서와 사이트 작성 clea..

    [Gradient Animation] AngularGradient Border 애니메이션 넣기

    [Gradient Animation] AngularGradient Border 애니메이션 넣기

    1. 이미지 리사이징 struct ContentView: View { var body: some View { Image("IU") .resizable() .scaledToFit() .frame(width: 300) .mask { RoundedRectangle(cornerRadius: 12) } } } 2. 그림자 추가 struct ContentView: View { var body: some View { Image("IU") .resizable() .scaledToFit() .frame(width: 300) .mask { RoundedRectangle(cornerRadius: 12) } .shadow(radius: 8) } } 3. AngularGradient Border 추가 struct Content..

    [EventKit] 캘린더에 이벤트 추가하기(with. Async/await)

    [EventKit] 캘린더에 이벤트 추가하기(with. Async/await)

    Introduction to Calendars and Reminders Introduction to Calendars and Reminders The EventKit framework helps you access users’ Calendar and Reminders information. Although two different apps display users’ calendar and reminder data, the same framework manipulates the data. Similarly, the da developer.apple.com EventKit 공식 문서 간단 해석 주관적일 수 있습니당 틀린 내용이 있으면 댓글로 달아주세요! EventKit는 사용자의 기존 캘린더 및 미리 알림 ..

    [프로그래머스] PRG-JadenCase 문자열 만들기

    [프로그래머스] PRG-JadenCase 문자열 만들기

    # PRG-JadenCase 문자열 만들기 문제 정리 풀이 func solution(_ s:String) -> String { let s = s.components(separatedBy: " ") var words: [[Character]] = [] var upperWords: [[Character]] = [] var upperSentences = "" // 전체 소문자로 변경 // [String] -> [[Character]] 로 변경 s.map { $0.lowercased() }.forEach { words.append(Array($0)) } // 첫 글자만 대문자로 변경 words.forEach { word in var upperWord: [Character] = [] for i in 0.. [[C..

    [소프트웨어 공학] 객체지향 개발 프로세스

    [소프트웨어 공학] 객체지향 개발 프로세스

    요구사항 설문, 인터뷰, JPR (Joint requirement planning) 등을 이용하여 이해 관련자로부터 수집, 용어집으로 용어 표준화 기능적 요구사항(유스케이스 다이어그램) 문제 해결을 위해 시스템이 제공해야 할 서비스 비기능적 요구사항 (부가사항 명세서) 시스템 품질: 신뢰성, 가용성, 성능, 편의성, 접근성, 보안성 제약사항 설계,구현/하드웨어/인터페이스 등의 제약사항 국제 (표준) 구격 요구사항 검증 기준 명확성: 일치된 해석 완전성: 모든 정보 기술 일관성 요구사항 간의 모순이 없어야 함 실현할 수 없을 정도의 많은 제약사항 회피 추적 가능성: 추적할 수 있도록 각 요구사항에 id 부여 검증 가능성: 정량화, 명확한 계량적 기준 사용자 관점 (WHAT o HOW x) 사용/구현 기술보..

    [소프트웨어 공학] 순차 다이어그램(Sequence Diagram)

    [소프트웨어 공학] 순차 다이어그램(Sequence Diagram)

    순차 다이어그램(Sequence Diagram) 시스템의 동적 흐름 서비스 제공 과정 표현 모델 서비스 객체 정의 -> 객체 간 메시지 송수신 과정을 시간 순서에 따라 정의 " 객체명: 클래스명 " 형식으로 맨 위에 객체 표시 ex) youngk: Person 왼쪽에서 오른쪽으로 객체 나열 객체 간의 송수신 메시지 형식 [시퀀스 번호][가드] : 리턴 값 := 메시지명(인자..) 위에서 아래 방향으로 시간(시퀀스) 진행 가드: 메시지 송신 조건 프레임: 다이어그램을 특정하는 wrapper 왼쪽 위 모서리에 다이어그램 타입과 이름 기입 sd: sequence diagram(순차) ud: usecase diagram(유스케이스) cd: class diagram(클래스) 하나의 시나리오 단위로 표시 다이어그램..

    [소프트웨어 공학] 패키지 다이어그램

    [소프트웨어 공학] 패키지 다이어그램

    패키지 다이어그램 패키지란? 관련 있는 모델 요소의 그룹화 패키지 내에 다른 패키지 포함 가능 구성 요소는 하나의 패키지에만 포함됨 패키지는 하나의 네임 스페이스 구성 패키지 제거 시 패키지 내의 모델 요소도 제거됨 패키지의 의존관계 B패키지 없이 A패키지의 단독 재사용 불가능 B패키지의 변경은 A패키지에 영향을 줄 수 있음 패키지 설계의 일반 원칙 응집도 높이고, 결합도는 낮춤 응집도: 패키지 내 클래스의 목적 수행 정도 결합도: 패키지 간의 상호 의존 정도 패키지 설계 원칙(응집도) REP Reuse Release Equivalence Priciple(재사용 릴리즈 등가 원칙) 재사용, 릴리즈의 단위는 패키지 CPR Common-Reuse Priciple(공통 재사용 원칙) 패키지 내의 클래스는 함께..