본문 바로가기
728x90
반응형

분류 전체보기362

23.10.22~23.10.29 업무 1. 신규 서비스 기능 개발 폭풍 같이 몰두한 한 주... a. 전체 아키텍처 구성 기본적인 애플리케이션 구조를 설계했다. 가장 신경 쓴 부분은 → 각 컴포넌트들 간의 관심사 분리. 지금껏 운영해 온 여러 서비스들을 생각해 보면 유지보수와 확장이 용이한 프로젝트도, 그렇지 않은 것도 있었다. 그 차이를 곰곰이 생각해 보면... 물론 여러 이유가 있겠지만, 애플리케이션의 최초 설계 역시 제법 큰 부분을 차지함을 느꼈다. 최초 설계 시 명확하지 않은 개념(올바르게 분리되지 않은 관심사)들은 필연적으로 개발자 각각의 정의로 이어졌고, 이로 인해 각 컴포넌트나 함수의 관심사가 모호해지는 경우가 허다했다. 따라서 지금까지 나온 요구사항에 기반해 핵심 상태 및 제어 로직과 전체 컴포넌트 구조를 정의하는데 노력.. 2023. 10. 29.
23.10.15~23.10.22 업무 1. 온보딩 요소 생성 관련 추가 개발 Builder class들을 통해 온보딩 시 띄워줄 HTMLElement들을 생성하고 있는데, 이 부분의 추가 개발을 진행했다. (배경, action 제어 등) 2. 공통 모듈 패키지 제공 메인으로 진행했던 업무! 사용자가 온보딩을 등록한 후, 해당 데이터를 배포하면 서버 측에서 해당 온보딩을 보여줄 수 있는 script 파일을 번들링 하고 있다. → 온보딩을 화면에 띄우는 데 필요한 로직은 모두 server에 작성되어 있었다. 그런데 client 측에서도 등록 중인 온보딩을 미리 봐야 하는 요구 사항이 있었고... 해당 기능을 구현하는데 필요한 로직의 90% 정도가, 이미 서버에 작성된 내용과 동일했다! 모든 파일을 복사 붙여 넣기 하기엔 유지보수 리소스가 .. 2023. 10. 22.
23.10.08~23.10.15 업무 1. 온보딩 요소 제어 로직 작성 사용자가 입력한 온보딩 관련 데이터를 생성 및 제어하는 기능을 개발했다. 1) 특정 요소 생성 모듈 작성 처음에는 각 컴포넌트 요소(툴팁 등)들을 builder 패턴을 사용해 작성했었다. 왜? → 해당 요소를 생성하기 위한 단계가 나뉘어 있었기 때문에(루트 element 생성, 스타일 적용, 이벤트 적용 등), 각 단계를 사용처에서 호출해 객체를 생성할 수 있도록 의도했기 때문! → 코드의 직관성을 높이고, 전체 데이터 인터페이스에 의존하는 게 아니라 각 단계에서 필요한 값을 주입받길 원했다. 그런데 점차 개발을 하다보니, 각 요소를 생성하는 시점은 크게 단계가 나뉠 이유가 없어 보였다. + 어차피 모든 단계에서 해당 데이터 인터페이스 전체가 필요해, 오히려 특정 .. 2023. 10. 16.
유한 상태 기계를 통한 사용자 선택 UI 개발 (feat xState) 프론트엔드 개발을 하다 보면, 다음과 같은 요구사항과 심심찮게 만날 수 있다. 1. 사용자는 여러 선택지 중 하나를 선택할 수 있다. 2. 선택된 요소는 스타일이 변경된다. 3. 선택된 요소를 다시 선택했을 경우, 해당 요소의 선택이 해제된다. 사실 여기까지는 별다른 문제 없이, 쉽게 구현이 가능하다. 현재 선택한 role 도망자 선택 수사관 선택 선택 안함 도망자 로 변경 수사관 으로 변경 도망자 선택 안함 으로 변경 선택 안함 으로 변경 수사관 도망자 로 변경 수사관 으로 변경 role을 선택하는 동작은 현재 선택된 role(상태)에 따라 각기 다른 동작을 수행하며, 만약 React로 이를 구현한다면... import React, { useState } from "react"; const page =.. 2023. 10. 11.
2023 3회 정보처리기사 실기 가답안 + 비전공 개발자 추천 이유 시험 후기 10월 7일에 시행된 정보처리기사 실기 시험을 치고 왔습니다. 블로그에 업로드 한 글을 보니, 정확히 1달 전부터 시험공부를 시작했는데... 직장을 다니면서 시험 준비를 병행하느라 실제로 하루 공부에 쏟은 시간은 출퇴근 지하철 + 퇴근 후 30분~ 1시간 정도뿐이었습니다. 가답안 정답 여부 BDCDD O ㉤ OAuth O KOREA OREA K E O O -> O ① chmod ② 751 ① O ② X 패키지 X ㉠ Equivalence Partitioning O A 4 3 2 1 X 34 O NAT O ATM X 7 X ① MAC ② RBAC ③ DAC O 2 O 5040 O split O ① IaaS ② PaaS ③ SaaS O RIP X ① join : ㉢ ⋈ ② project : ㉡ π.. 2023. 10. 9.
23.10.01~23.10.08 업무 1. 신규 서비스 개발사항 리팩토링 추석 연휴가 시작되기 직전, 신규 서비스 MVP를 개발했었다. 기획-디자인이 명확하게 나오지는 않은 상태라, 전체적인 동작만 확인했었는데... 의도대로 구현은 됐지만, 작성한 구조와 코드가 도무지 맘에 들지 않았다. 개선이 필요했던 이유는 1. 각 Class 들이 명확하게 추상화되지 않아 이해가 어려웠고 2. 불필요한 결합도로 인해 유지보수 및 확장이 어려웠기 때문! 추석 내내 어떻하면 이를 개선할 수 있을지 고민했고, 출근 후 하루 정도 시간을 내 리팩토링을 진행할 수 있었다! 1. 시나리오 관리자 추상화 각 시나리오에 맞는 HTMLElement를 DOM에 그려줘야 했는데, 이전에는 시나리오 관리자라는 객체에서 1) 해당 시나리오에 맞는 HTMLElement를 .. 2023. 10. 8.
[정보처리기사 실기] 결합도 / 응집도 결합도 서로 다른 모듈 간 상호 의존 하는 정도 또는 두 모듈 사이의 연관된 관계 데이터 결합도 (Data Coupling) 모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도 스탬프 결합도 (Stamp Coupling) 모듈 간의 인터페이스로 배열, 레코드 등의 자료 구조가 전달될 때의 결합도 제어 결합도 (Control Coupling) 모듈 간의 인터페이스로 데이터를 어떻게 처리해야 하는지를 결정하는 제어 요소가 전달될 때의 결합도 외부 결합도 (External Coupling) 어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때의 결합도 공통 결합도 (Common Coupling) 인터페이스가 아닌, 모듈 밖에 선언된 전역 변수를 참조, 갱신하는 식으로 상호작용할 때의 결합.. 2023. 10. 1.
[정보처리기사 실기] C언어 printf 출력 형식 C언어 → 줄바꿈 없을 경우 기본적으로 한 줄 출력 2020 기출 1회 14번 #include main() { int c=1; switch(3){ case 1:c+=3; case 2:c++; case 3:c=0; case 4:c+=3; case 5:c-=10; default : c--; } printf("%d",c); } 더보기 -8 1회 20번 #include void align(int a[]){ int temp; for(int i=0;i age); } 더보기 Lee 38 구조체 **insa**를 정의하고 **name**과 age 두 개의 멤버를 가지고 있습니다. 구조체 배열 **a**를 초기화하고 이름과 나이를 번갈아가며 초기화합니다. 구조체 포인터 **p**를 선언하고 a 배.. 2023. 9. 27.
[정보처리기사 실기] 네트워크 OSI 참조 모델 다른 시스템 간의 원할한 통신을 위해 ISO에서 제안한 통신 규약(protocol) 하위 계층 : 물리 계층 → 데이터 링크 계층 → 네트워크 계층 상위 계층 : 전송 계층 → 세션 계층 → 표현 계층 → 응용 계층 물리 계층 전송에 필요한 두 창지 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙 정의 물리적 전송 매체와 전송 신호 방식을 정의 관련 장비 : 리피터, 허브 데이터 링크 계층 2개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 시스템 간 연결 설정과 유지 및 종료를 담당 흐름 제어, 프레임의 동기화, 오류 제어, 순서 제어 관련 장비 : 랜카드, 브리지, 스위치 네트워크 계층 개방 시스템들 간의 네트워크 연결을 .. 2023. 9. 25.
728x90
반응형