목록전체 글 (74)
why not

1. 시스템 설계 건물을 짓기 전 설계 도면을 그리는 과정 시스템의 요구사항을 충족하기 위해 필요한 아키텍처, 인터페이스 및 데이터를 정의 소프트웨어를 구성하는 요소들 (a.k.a 컴포넌트) 간의 관계와 동작 메커니즘을 표현하기 위한 구조체 2. 설계가 필요한 이유 설계도가 없는 건물이 안전하지 않은 것과 같이 설계가 없이 구현된 소프트웨어도 안전하지 않다. 건드려도 될 것과 건드리면 안될 것을 모르므로 불안정한 소프트웨어를 만들게 된다. 개발이 진행된 이후에는 이미 개발된 전체 시스템의 구조를 수정하기가 어렵기 때문에 구현 전에 미리 설계를 해야 한다. 설계 과정이 있어야 확장성, 보안 등 시스템에 요구되는 다양한 요구사항을 잘 충족시킬 수 있다. 설계의 유무는 개발 과정에 큰 영향을 미친다. 개발자들..

1. 더치페이 서비스 소개 아이디어의 탄생 및 배경 앞으로 빌딩 할 내용의 소개 2. 추상적인 아이디어를 구체화하기 위한 서비스 요구사항 정리 시스템에 대한 사용자의 요구와 기능 정리-> 프로젝트의 근간이 되는 step이라 아주 중요하다. 프로젝트 초기 단계, 협업 및 유지보수 등 모든 측면에서 기초가 되는 단계라서 중요 기능적 요구사항(Functional requirements)-> 소프트웨어의 기능에 대한 요구사항들 리스팅 비기능적 요구사항(Non-Functional requirements) -> 소프트웨어의 품질을 높이기 위한 요구사항들 리스팅 3. 요구사항을 작성하는 방법 3-1. User story로 시작하기 3-1.1) 형식: {Role}로서, 나는{Benefit}을 위해 {Goal}을 이루고..
1. SEO란? 만든 웹 페이지가 검색 결과 상위에 없거나 뒤 페이지로 밀려나지 않게 검색 엔진의 작동 방식에 맞게 웹 페이지를 최적화해주는 작업인 SEO(Search Engine Optimization, 검색 엔진 최적화)가 필요 SEO를 통해 검색 엔진에서 웹 페이지를 보다 더 상위에 노출할 수 있다. 1-1. SEO 분류 1-1.1) On-Page SEO -> 집중! 페이지 내부에서 진행할 수 있는 SEO 제목과 콘텐츠, 핵심 키워드의 배치, 효율적인 HTML 요소 사용법 등을 이용하는 방법 1-1.2) Off-Page SEO 웹 사이트 외부에서 이루어지는 SEO 소셜 미디어 홍보, 백링크(타 사이트에서 연결되는 링크) 등을 이용하는 방법 웹 페이지 내용이나 구조와는 관계가 없다. 2. SEO에 영..

1. 릴리즈 날짜를 계산하기 위해 필요한 것들 1-1. 이상편 UI 디자인 -> 프론트엔드 로직이 바뀔 수 있기에 꼭 필요 시스템 설계도 -> 설계 기반으로 태스크를 세분화 할 수 있음 투입될 인원과 프로젝트에 쏟을 수 있는 시간 -> 본업이 있는 상태이기 때문에 쓸 수 있는 시간이 다양함 1-2. 현실편 아직 완벽하지 않아도 1차적으로 무엇을 해야 할지 파악이 끝난 프로젝트만 있으면 가능 직감이나 예측(전략적인 배포라면 날짜가 박혀 있는 경우도 있음) ex) 릴리즈 날짜를 정하기엔 시간이 오래걸리기 때문에, 아마존의 경우, 프로젝트를 관리해주는 매니저나 경험이 많은 개발자들이 모여 프로젝트의 규모와 해야 할 일을 파악 및 예측을 한 후 목표 날짜를 1차로 러프하게 정한 후 설계를 진행 -> 매니저의 성..

1. 웹 표준? W3C(World Wide Web Consortium)에서 권고하는 ‘웹에서 표준적으로 사용되는 기술이나 규칙’ 사용자가 어떠한 운영체제나 브라우저를 사용하더라도 웹페이지가 동일하게 보이고 정상적으로 작동할 수 있도록 하는 웹 페이지 제작 기법을 담고있다. 웹 개발에 사용되는 언어인 HTML(구조), CSS(표현), JavaScript(동작) 등의 기술을 다룬다. 크롬, 엣지, 사파리, 오페라, 파이어폭스 등 최신 웹 브라우저들은 모두 웹 표준을 지원 -> 웹 표준에 맞추어 웹 페이지를 작성하면 어떤 브라우저를 사용하든 동일한 결과물을 얻을 수 있다. 1-1. 웹 VS 인터넷 1-1.1) 인터넷? 전 세계적으로 연결되어있는 컴퓨터 네트워크 통신망을 의미 웹, 온라인 게임, 모바일 앱등의 ..

1. 태스크를 만들고 난 이후 해야 할 것? 1-1. 우선 순위 정하기 - 우선순위를 정하는 이유? 무엇을 해야 할지 명확하게 파악이 가능하다. 앞으로 집중해야 하는 것(이번이나 다음 릴리즈에서 집중할것들, 다가오는 스프린트에서 집중할 것들...)은 무엇인지 계획을 세울 수 있다. 우선순위는 어떤 관점에서 바라보는지에 따라 바뀔 수도 있다. 프로젝트를 보다 체계적으로 수행할 수 있다. 목표를 달성하기 위해 필요한 작업을 우선순위에 따라 계획할 수 있다. 1-2. 더치페이로 보는 우선 순위 정하는 과정 1-2.1) 지금 당장 해야 할 것? (High priority) UI design 백엔드 설계 -> 이 두 가지는 프로젝트의 성격상 매우 중요하며, 이를 먼저 해결해야만 다른 sub-task들을 수행할 수..

1. JavaScript엔진? JavaScript 코드를 실행하는 소프트웨어 구성 요소 최초의 JavaScript 엔진은 단순한 Interpreter였지만, 모든 관련 최신 엔진은 성능 향상을 위해 Just-In-Time 컴파일을 사용 2. 컴퓨터가 소스 코드를 이해하려면? 컴퓨터 프로세서는 0과 1만 이해할 수 있기 때문에, 우리가 작성한 소스코드를 머신 코드로 변환해 줘야 하는데, 이 변환 과정은 컴파일과 인터 프리커를 통해 일어난다. 3. Interpreter VS Compiler 3-1. Interpreter: 실행할 때마다 한줄 씩 번역 및 분석 3-2. Compiler: 사람이 작성한 코드를 한번에 기계어로 변환 4. JIT Compiliation (Just In Time) 초기에 자바스크립트..

1. 세분화에 포함될 내용 정리 software 요구사항을 기반으로 task를 작성 User story 단위로 task를 세분화 시켜보는 것에서 시작 처음부터 모든 것을 확정지으려고 하지 말기 조사가 필요한 부분, 설계가 피요한 부분도 태스크로 만들어서 관리 2. Task 세분화 -> User story 하위의 Task들은 앞으로 더 구체화되고 수정이 가능 (feat. Agile방식) User story Software Requirement 사용자가 정산을 시작하기 위해 정산 이름(모임 이름)을 입력 그룹 이름을 입력할 수 있는 창을 제공 [프론트 엔드]: 그룹 이름 입력 컴포넌트 [백엔드]: 백엔드 필요한지 설계 필요 사용자가 정산에 참여할 사람들을 입력 - 시스템은 그룹에 속하는 사람들의 이름을 입력..