반응형

분류 전체보기 269

[정보처리기사 실기] 3장 데이터 입출력 구현

정보처리기사 수제비 2022 실기 문제집을 요약하며 공부했습니다! 😁 3-1 논리 데이터 저장소 확인 3-1-1. 데이터 모델 📌 데이터 모델 개념, 표시요소 - 데이터 모델: 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델 - 표시요소: 연산(Operation), 구조(Structure), 제약 조건(Constraint) 📌 데이터 모델 절차 요구조건 분석: 요구사항 간 상충을 해결하고, 범위를 파악하여 외부 환경과의 상호작용 분석을 통해 데이터에 대한 요구 분석 개념적 설계: 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델. 주요 산출물은 개체-관계 다이어그램 논리적 설계: 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기..

[정보처리기사 실기] 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

프로젝트 마무리 회고

2022년 하반기는 아주 바빴다. 주위 사람들이 걱정할만큼 내 시간이 부족했다. 여튼 어떻게든 프로젝트는 끝나게 된다. 플러터로 앱개발은 처음이었다. 리액트로 투두리스트 만들때의 초심을 찾는 기분이었다. 메인 기술은 영상 컨트롤, 블루투스 연결이었다. 스트림을 다루는 것은 언제나 어려운 일이지만, 이걸 어떻게 구현할지 고민하고, 예상치 못한 케이스가 발생하지 않을지 로직을 촘촘하게 분석하려 노력했다. 짧은 개발 기간동안 가독성 좋은 코드를 짜고 싶었던 것은 너무 욕심이었을까? 하나의 페이지에서 위젯을 잘게 나누는 것 조차도 어려웠고, 영상 컨트롤러를 최대한 활용하지 못한 것, 성능 최적화, GetX 적절히 활용 못한것들이 아쉬움에 남는다. 시간되면 플러터 blue plus 사용법, 영상 컨트롤러 커스텀하..

오늘의집 MD에서 개발자로 취업하기까지(항해99 취업 후기)

항해를 시작하기 전의 나 항해를 시작한 이유 항해99를 하는 동안의 삶 항해99의 장점 현재 개발자로의 삶 항해99의 단점 소감 그리고 하고싶은 말 1. 항해를 시작하기 전의 나 안녕하세요! 항해 1기(2021년 3월 1일 ~ 2021년 6월)를 수료하고 협력사 NONEGOLAP에서 프론트엔드 개발자로 일하고 있는 곽혜미입니다. 저는 항해를 만나기 전, 리빙 커머스에서 온라인 해외직구 MD로 약 4년간 일했습니다. 자기계발의 욕심이 생길 때쯤, 끊임없이 신기술을 공부해 성장해나가는 개발자의 삶이 막연하게 좋아보였고, 개발자가 되기 위한 구체적인 방법을 찾다가 코딩 부트캠프라는 것을 알게 되었습니다. 2. 항해99를 시작한 이유 다양한 부트캠프 중, 항해99가 가장 빠르게 시작할 수 있었던 곳이었고, 비용..

에이미's 일상 2022.11.21