반응형

개발공부 61

[정보처리기사 실기] 2장 화면 설계

정보처리기사 수제비 2022 실기 문제집을 요약하며 공부했습니다! 😁 2-1 UI 요구사항 확인 📌 UI 개념 및 유형 - UI: 사용자와 시스템 사이에서 소통할 수 있도록 고안된 물리적, 가상의 매개체. 정보 기기나 소프트웨어 화면 등에서 사람이 접하게 되는 화면 - UI 유형 CLI(Command Line Interface): 명령어를 텍스트로 입력하여 조작하는 사용자 인터페이스 GUI(Graphic User Interface): 그래픽 환경을 기반으로 한 마우스나 전자펜을 이용하는 사용자 인터페이스 NUI(Natural User Interface): 키보드나 마우스 없이 신체 부위를 이용하는 사용자 인터페이스 OUI(Organic User Interface): 현실에 존재하는 모든 사물이 입출력장치..

[정보처리기사 실기] 1장 요구사항 확인

정보처리기사 수제비 2022 실기 문제집을 요약하며 공부했습니다! 😁 1-1 소프트웨어 개발 방법론 1-1-1. 소프트웨어 생명 주기 📌 생명 주기란소프트웨어 생명주기(SDLC; Software Development Life Cycle) : 개발 될 때부터 운용과 유지보수를 거쳐 생애를 마칠 때 까지 어떠한 순서를 밟는지에 대한 작업 프로세스 📌 생명주기 모델 종류 - 폭포수모델: 이전 단계를 마무리 지은 후에 다음 단계로 넘어갈 수 있다. 가장 오래된 모델, 선형 순차적 모델, 요구사항 변경이 어렵다. - 프로토타이핑 모델: 고객이 요구한 주요 기능을 프로토타입으로 구현하여 피드백을 반영해가며 소프트웨어를 만들어나감 - 나선형 모델: 개발 시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 ..

[리팩터링] Refactoring 2판 - 6장

6장 리팩터링의 기본 중에서 가장 많이 쓰인다는 함수 추출하기, 변수 추출하기, 함수 인라인하기에 대해 공부했다. 함수 추출하기는 개발자들이 흔히 하는 리팩터링 중 하나라 이해하기 쉬웠지만, 함수 인라인하기는 많이 해본적 없어서 어려웠다. 함수 인라인하기에서는 로직 상 a함수와 b함수가 무조건 같이 호출 되는 경우에, 굳이 분리하는 것 보다 하나의 함수로 묶는것이 더 낫다고 한다. 6-1. 함수 추출하기 (Extract Function) ⭐️⭐️⭐️⭐️⭐️ 코드 조각이 하는 일에 따라 독립된 함수로 추출하고 목적에 맞는 이름을 붙이는 일 언제 추출하는가? 길이가 길 때, 재사용 가능 할 때, 목적과 구현을 분리할 때 절차 함수를 새로 만들고 목적을 잘 드러내는 이름을 붙인다(어떻게가 아닌 ‘무엇을’ 하는..

개발공부 2023.02.24

[리팩터링] Refactoring 2판 - 1장 2차

지난 게시물에서 리팩터링 했던 코드 중 일부 코드를 다시 리팩터링했다. 그 일부 코드만 다시 기록하려고 한다. 1. 각 공연별 총액, 좌석 표시하는 함수 getOnePlayInfo 원하는 출력 결과 Hamlet: $650.00 (55석) As you like it: $580.00 (35석) Othello: $500.00 (40석) - 기존 코드(map을 사용하여 문자열 더하기) // 출력결과에서 원하는 play 하나의 정보를 print 하는 함수 const getOnePlayInfo = (performanceInfos) => { let result = ""; performanceInfos.map((performance) => result += `\n${performance.play.name}: ${for..

개발공부 2023.02.20

[리팩터링] Refactoring 2판 - 1장

1장에서 리팩터링 예시로 든 공연료 구하는 코드를 리팩토링 해보기로 했다. ➡️ 공연료 청구서 출력하는 코드 리팩토링 하기 const plays = { "hamlet": {"name": "Hamlet", "type": "tragedy"}, "as-like": {"name": "As you like it", "type": "comedy"}, "othello": {"name": "Othello", "type": "tragedy"} }; const invoices = { "customer": "Amy", "performances": [ { "playID": "hamlet", "audience": 55 }, { "playID": "as-like", "audience": 35 }, { "playID": "othe..

개발공부 2023.02.16

[리팩터링] Refactoring 2판 - 2,3장

1. 리팩터링 원칙 1-1) 리팩터링의 정의 리팩터링(하다): [동사] 소프트웨어의 겉보기 동작은 그대로 유지한 채, 여러 가지 리팩터링 기법을 적용해서 소프트웨어를 재구성하다. 리팩터링: [명사] 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 기법 겉보기 동작을 유지한다 = 성능, 기능, 버그까지 그대로 있어야 한다. 1-2) 리팩터링 목적 소프트웨어 설계가 좋아진다 → 처음부터 완벽한 설계는 없다! 소프트웨어를 이해하기 쉬어진다. 버그를 쉽게 찾을 수 있다. 프로그래밍 속도를 높일 수 있다. 1-3) 리팩터링의 시점 비슷한 일을 세번째 하게 되면 (3의 법칙) 하지 말아야 할 때? → 지저분해도 굳이 할 필요 없다면 하지 않는다. 2. 코드에서 나..

개발공부 2023.02.10

[🦄자바스크립트 완벽가이드] 배열

🌟 자바스크립트 배열의 특징 타입이 없어서 배열 하나에 여러 타입이 섞여있어도 괜찮음 0으로 시작하는 32비트 인덱스를 사용해서, 최대 2의32승 -2 (32비트) 까지 커질 수 있다. 배열은 **성긴 배열(sparse)**이라 인덱스가 이어지지 않아도 됨! 모두 length 프로퍼티가 있다. 자바스크립트 실행 환경은 배열을 최적화하므로 일반적인 객체 프로퍼티보다 상당히 빠르게 접근 가능하다. Tip! 배열을 사용할때는 리터럴 형식으로 객체를 생성하고 push() 메서드보다 접근자를 사용해 데이터를 추가하는것이 최적화된 사용법이다. * 자바스크립트 배열에서의 성능 우위 문법 * let arr = new Array(); (X) let arr = []; (O) arr.push("안녕"); (X) a[2] =..

[🦄자바스크립트 완벽가이드] 객체

1. 객체 생성 객체 리터럴, new, Object.create() 함수를 사용 리터럴: 데이터(값) 그 자체. 변수에 넣는 변하지 않는 데이터를 의미 객체 리터럴: 중괄호 안에 프로퍼티를 정의하여 객체를 생성 new: 새 객체를 생성하고 초기화 new Object(), new Array(), new Date(), new Map() 프로토타입 객체 거의 대부분은 자신과 연결된 두번째 객체를 갖는다. 두번째 객체 = 프로토타입 객체 리터럴의 프로토타입 객체는 Obejct.prototype, new Array()로 만들어진 객체의 프로토타입은 Array.protype, new Date()로 만들어진 객체 프로토타입은 Date.protytype 이다. 프로토타입 체인: 특정 객체의 프로퍼티나 메소드 접근시 만..

[🦄자바스크립트 완벽가이드] 표현식과 연산자

4.1 기본 표현식 상수, 리터럴 값, 일부 키워드, 변수 참조 4.2 객체와 배열 초기화 표현식 그 값이 새로 생성된 객체나 배열인 표현식. 객체 리터럴 혹은 배열 리터럴이라고 부른다 4.3 함수 정의 표현식 함수 리터럴 4.4 프로퍼티 접근 표현식 점 표기법, 대괄호 표기법 점 표기법은 접근하고자 하는 이름이 유효한 식별자이고, 그 이름을 알고 있을때만 사용 프로퍼티 이름에 스페이스나 구두점, 숫자인 경우, 변수일 때에는 대괄호 표기법을 써야한다. expression.identifier expression[expression] 조건부 프로퍼티 접근(옵셔널 체이닝) → undefined, null 일때 종료(undefined로 평가) ⇒ TypeError 방지 4.5 호출 표현식 함수나 메서드를 호출하..