UML 다이어그램 중 순차 다이어그램에 대한 설명으로 틀린 것 1. 객체 간의 동적 상호작용을 시간 개념을 중심으로 모델링 하는 것 2. 주로 시스템의 정적 측면을 모델링 하기 위해 사용 (X) => 동적 측면 3. 일반적으로 다이어그램의 수직 방향이 시간의 흐름을 나타냄 4. 회귀 메세지, 제어블록 등으로 구성됨 유스케이스의 구성 요소 간의 관계에 포함되지 않는 것 => 구체화 => 연관, 확장, 일반화는 포함된다. GoF 디자인 패턴을 생성, 구조, 행동 패턴으로 분류할 때 구조 패턴이 아닌 것 (틀림) => Builder 패턴 생성: 팩토리 메소드, 싱글레톤, 프로토타입, 빌더, 추상 팩토리 구조: 어댑터, 브릿지, 컴퍼짓, 데코레이터, 퍼사드, 플라이웨이트, 프록시 행동: 책임 연쇄, 반복자, 명..
66. 소프트웨어 개발 방법론 활용 1) 소프트웨어 개발 생명주기 모형 프로토타입 모형 폭포수 모형(waterfall) 나선형 모형(위험 관리, 반복) CPM(Critical Path Method) - 작업의 총 소요 시간 예측하는 방법(가장 긴 기간으로) 구조적 방법론 => 데이터 흐름 다이어그램, 설계 구조도 객체지향 방법론 => 객체, 클래스, 메세지로 구성됨 캡슐화, 정보 은닉, 추상화, 상속, 다형성 컴포넌트 기반 개발 방법론 => 컴포넌트로 조합해서 개발한다. 소프트웨어 재사용 합성 중심(모듈을 만들어 끼움)/생성 중심(추상화 형태로 쓰여진 명세를 구체화) 68. 비용 산정 모델 1) 비용 산정 모델 종류 전문가 감정 기법, 델파이 기법, LOC 기법, COCOMO 모델 등등등... 델파이: ..
react-hook-form 아래 글에서 Web IDE의 로그인/회원가입을 구현할 때 react-hook-form을 사용했다고 적었다. 수료 후 우리 팀은 꾸준히 Web IDE 리팩토링을 하고 있는데, 이제 슬슬 나도 코드를 뜯어보기 위해 에디터를 들여다 보다가 react-hook-form을 좀 더 잘 이해해 봐야겠다는 생각이 들었다. (왜냐하면 저 때는 데드라인 맞추는 게 중요해서 공식 문서를 제대로 안 봤기 때문) [HongsamIDE] Web IDE 만들기 : react-hook-form으로 로그인/회원가입 구현 홍플릭스가 단순 과제 개념이라 선택사항이었다면 그 다음 프로젝트인 Web IDE는 필수였다. 그러니까 원래 팀끼리 하는 과제 1번이 SNS 클론, 2번이 넷플릭스 클론, 3번이 쇼핑몰, 4..
49. 공통 모듈 구현 1) 재사용 재사용하는 거 장점 생각해보기 2) 모듈화 거대한 문제를 작은 조각으로 쪼갠다. 모듈의 독립성은 결합도와 응집도에 의해 측정된다. 결합도(Coupling) 모듈 간의 상호 의존도로 결합도가 약해지면 모듈 독립성이 향상됨 (당연함) 전역 변수보다 매개 변수를 사용하는 것이 결합도를 낮추는데 도움이 됨 결합도 정도: 데이터 결합도(파라미터 정도) 순차적 > 교환적 > 절차적 > 시간적 > 논리적> 우연적 50. C언어의 개요 1) C언어의 기초 컴파일러 방식의 ..
다음 조건을 모두 만족하는 정규형 - 테이블 R에 속한 모든 도메인이 원자값만으로 구성되어 있다. - 테이블 R에서 키가 아닌 모든 필드가 키에 대해 함수적으로 종속되며, 키의 부분 집합이 결정자가 되는 부분 종속이 존재하지 않는다. - 테이블 R에 존재하는 모든 함수적 종속에서 결정자가 후보키다. => BCNF 데이터베이스의 인덱스와 관련한 설명으로 틀린 것 1. 대부분의 데이터베이스에서 테이블을 삭제하면 인덱스도 같이 삭제된다. (O) 2. 테이블에 붙여진 색인으로 데이터 검색 시 처리 속도 향상에 도움이 된다. (O) 3. 인덱스의 추가, 삭제 명령어는 각각 ADD, DELETE다. => 인덱스의 추가, 삭제 명령어는 CREATE, DROP이다. 4. 대부분 데이터베이스에서 테이블을 삭제하면 인덱스..
34. 자료 구조 1) 자료 구조 정렬(오름차순, 내림차순), 검색, 인덱스(독립적인 저장 공간을 보유한, 순서 데이터), 파일 편성 등은 자료 구조를 활용한 것 2) 선형 자료 구조 선형 리스트 배열처럼 연속된 기억 장소에 저장되는 리스트로 가장 간단한 데이터 구조 중 하나 데이터 항목을 추가/삭제하는 것이 불편함 (도중에 끼워넣거나 빼면 앞으로 당겨야 함) 연결 리스트 노드의 포인터 부분을 서로 연결 시킨 리스트로 연속적인 기억 공간이 없어도 저장 가능 노드의 삽입/삭제가 용이하며 포인터를 위한 추가 공간이 필요해 기억 공간이 많이 소요된다. 스택 선형 리스트 한쪽 끝에서만 자료의 삽입/삭제가 이뤄짐 LIFO 방식 (삽입된 자료 위치에 따라 top과 bottom이 있다.) 스택 가드(메모리 상 프로그..
들어가기 MBTI 테스트 구현 중, 모든 문항에 대한 답을 고르고 나면 결과 페이지로 이동하게 로직을 구성했다. 그런데 답을 하자마자 바로 딱! 하고 결과 페이지로 가니 뭔가 딱딱한 느낌이 들었다. 그래서 정적 페이지지만 setTimeout을 걸어서 로딩중 화면을 띄우고 몇 초 후 라우팅 되도록 로직을 수정했다. 이 때 로딩중 화면을 어떻게 띄울지 고민했는데, /loading 이라는 페이지로 라우팅하는 것보다 그냥 모든 문항에 대한 답을 고르면 어떤 값을 true로 설정해주고 이에 따라 삼항 연산자로 로딩중 화면을 띄우기로 했다. 이 로딩중 화면은 그 원래 서버로부터 어떤 답을 가져오기 전, 유저가 응답을 기다리는 동안 지루하지 않게, 에러가 난 건지 결과를 기다리는 건지 알려주기 위해, 이탈을 방지하기..
✏️ Describing the UI : Conditional Rendering 삼항 연산자 상품의 포장 여부를 확인하는 isPacked의 prop에 따라 체크 표시를 주려고 한다. function Item({ name, isPacked }) { if (isPacked) { return {name} ✔; } return {name}; } export default function PackingList() { return ( Sally Ride's Packing List ); } 이런 식으로 prop에 따라 JSX 트리를 다르게 반환하는 경우가 있다. 하지만 prop의 값만 다를 뿐 코드의 중복이 보인다. 이러한 중복은 크리티컬하진 않지만 유지보수에 어려움이 있다. 이와 같은 경우에 조건(삼항) 연산자로 ..
✏️ Describing the UI : Passing Props to a Component Familiar props props란 img 태그에 전달하는 className, alt, src, width...처럼 JSX 태그에 전달하는 정보를 말한다. (사용자가 정의한 컴포넌트는 어떤 props든 전달할 수 있지만 img 태그처럼 전달할 수 있는 props가 미리 정의된 경우도 있다.) Passing props to a component export default function Profile() { return ( ); } Profile 컴포넌트는 자식 컴포넌트인 Avata에 어떤 props를 전달하려고 한다. 이때 2단계에 걸쳐 전달할 수 있다. 자식 컴포넌트에 props 전달하기 예제에서는 pers..