프로젝트 관리 프로젝트란? 일정한 기간 안에 일정한 목적을 가지고 달성하기 위해 수행하는 업무의 묶음 👀개발자의 시선에서? 하나의 프로그램을 만들기 위한 일련의 프로세스이다. 소스코드 구현 뿐만 아니라, 기획, 설계, 테스트 배포 모두 포함하고 있다. 최근 취업시장에서는 개인과 그룹 플젝 모두 역량적으로는 비슷하지만, 회사에서 협업 경험을 중요시해 그룹 플젝의 필요성이 높아지고 있다고 한다. 협업 경험이 있다면, 코드공유, 문서공유, 진행율, 담당자 등등 많은 것을 공유하는 역할, 팀프로젝트를 위한 소통능력을 갖췄다고 보기 때문이다. Read me 리드미 그래서 리드미 문서를 작성할 줄 알아야 한다. 협업 개발 진행에 꼭 필요한 문서 프로젝트를 설명하는 설명파일 완성된 프로그램의 설명서 프로그램 사용방법..
전체 글
커다란 자갈돌은 짱돌 빙글빙글 돌아가는 맷돌🪨 FE 개발자를 위한 여정을 엉망진창 기록하자개념 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정 `피지컬`을 요구하는 문제 완전탐색 : 모든 경우의 수를 주저 없이 다 계산하는 해결방법 시뮬레이션 : 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행 ❓자바스크립트 메모리 제약 사항 일반적으로 컴퓨터는 1초에 `10억(10^8)`번 연산의 연산이 가능하다. C++이나 파이썬은 기준이 정해져 있지만, 자바스크립트는 대략 `10^7`번 정도를 기준으로 계산하라는 이야기가 있다. 공식적으로는 정의되어있지 않고, 언어 자체의 특성보다는 브라우저나 실행 환경의 성능에 따라 다를 수 있다고 한다. 정확한 "1초에 몇 번"의 연산으로는 일반적으로 표현되지 않는 대신에, 브라우저나 실행 환경에서의 실제 성능 측정을 통해 어떤 연산이 더 효율적인지 판단하는..
개념 탐욕법 현재 상황에서 지금 당장 좋은 것만 고르는 방법 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다 다익스트라 알고리즘 - 엄밀히 말하면 그리디 알고리즘으로 분류 암기가 필요 없음 해법이 정당한지 검증이 필요 그리디와 정렬 알고리즘과 짝을 이뤄 자주 출제됨 ❓문제를 만났는데 바로 문제 유형을 파악할 수 없는 경우 그리디 알고리즘을 의심하고 해법을 고민 그리디로 해결할 수 없다면 → 다이나믹 프로그래밍이나 그래프 알고리즘으로 해결할 수 있는지 고민 예제 3-1 거스름돈 const COIN_TYPES = [500,100,50,10]; let n = 1260; let cnt = 0; for(const coin of COIN_TYPES) { cnt += Math.floor(n/coin); n..
어이없게도 개발이 뭔지 몰랐다. 고등학교때, 과학에 겁먹고 문과를 선택한 바보는... 수학에서 재미를 느끼고 잠깐의 후회를 했다. 이과 수학을 배우고 싶었는데, 이미 선택한지 일년이 지났고 어쩔 수 없었다. 뒤쳐지지 않기 위해 문과에 몰입했고 진로 방향성도 전혀 개발과 관련 없는 분야였다. 진로 탐색의 기회조차 없었다. 입시 오래 다닌 학원 원장선생님이 논술을 추천했고, 다독상도 많이 받은 도서부로써 논리적 글쓰기는 자신 있어서 도전했다. 사실 논술은 실력보다는 운이 더 컸고, 실력이 월등한 천재들도 존재했다. 학교마다 다른 스타일을 외우고 적용하며 연습하자, 재미있던 글쓰기도 싫어졌다. 그런데 수학에서 좋은 성적을 거두자 전략이 생겼다. 어문과 수학을 같이 시험보는 학과로 논술을 보자는 것이었다. 여러..
조건문? 주어진 조건식이 참이냐 거짓이냐에 따라 다른 명령을 처리하도록 만든 수행문이다. 조건문은 프로그램이 복잡한 명령을 수행할 수 있게 하므로 유용하다. 조건식? 계산결과가 참(True) 또는 거짓(False)의 값을 갖는 식이다. 비교연산자와 불리언(Boolean)을 이용하여 만들 수 있다. 불리언 Boolean 계산 결과가 `true` 아니면 `false`로 나오는 것을 불리언 데이터타입이라고 한다 * JS 메소드에는 불리언 값을 계산해주는 객체가 있다..!! 비교연산자 JS 에서는 `==`의 비교방식과 `===`의 비교방식이 다르다. `1=='1'` VS `1==='1'` 데이터타입이 다른경우 첫번째 방식은 같다고 판단하고, 두번째 방식은 데이터타입까지 비교해서 다르다고 판단한다. 이외에도 `=..
자바스크립트는 다른 언어의 for문으로 작성해야 할 코드를 메소드를 사용해서 반복해서 탐색할 수 있다는 장점이 있다. 그 전에 반복문을 정리해야, 메소드를 잘 쓸 수 있지 않을까?? 반복적으로 실행해야 할때 코드를 작성한다 종류 for for...in for...of forEach() - Array 메소드 while do...while for let str = ''; for (let i = 0; i < 9; i++) { str = str + i; } 괄호로 감싸고 세미콜론으로 구분한 세 개의 선택식과, 반복을 수행할 문(주로 블럭문)으로 이루어져 있다 for 문 안에 3가지 요소가 꼭 필요하다 `let i = 0;` 변수 let i 를 선언하고, 0으로 할당한다. 반복문 초기값을 설정한다. `i < 9;..
함수를 사용하는 이유? 원하는 시점에서 함수를 재사용할 수 있다는 생산성 증가 측면 함수 기능 단위로 테스트를 실행할 수 있는 테스트 용이성 유지보수성, 코드의 가독성 이러한 장점을 모듈화 라고 한다. * 모듈화? 기능적인 분리를 통해서 다른 프로그램을 개발할 때에도 유지보수와 코드 재사용성을 높여 소프트웨어를 설계하는 기법 utils와 개념이 유사하며, 객체지향을 배웠다면 간단히 이해가 될 것이다 두가지 개념이 사용된다 import : 사용하는 쪽, 함수를 불러옴 export : 내보내는 쪽 표현 방법 함수 선언식 함수 표현식 화살표 함수 함수 선언문 다른 언어들과 유사한 형태를 가지고 있다. function calcRectArea(width, height) { return width * height;..
함수 개념 함수는 프로그래밍 적으로 단일 기능을 만들어내고, 함수들이 모여서 작동하는 프로그램을 만든다고 생각한다 수학적으로 동일한 입력값을 주면 동일한 출력값을 나오게 하는 동작방식을 말한다 어릴때 배웠던 `f(x) = x+1 ` 같은것... 프로그래밍에서도 다르지 않다! 국립특수교육원에서는 함수를 어떤 일을 수행하는 명령들을 하나로 묶어서 이름을 부여하고 필요할 때마다 그 함수를 호출하여 사용할 수 있는 프로그래밍 방법 이라고 정의한다. 함수형 프로그래밍 함수형 프로그래밍은 성공적인 프로그래밍을 위해 부수 효과를 미워하고, 조합성을 강조하는 프로그래밍 패러다임 부수 효과를 미워한다 -> 순수함수를 만든다. 조합성을 강조한다 -> 모듈화 수준을 높인다. 순수함수 -> 오류를 줄이고 안정성을 높인다. 모..
📝 스코프 scope 식별자를 찾을때 자바스크립트에서 확인하는 범위이다. 이를 통해 접근 가능성 = 가시성을 결정한다. 상위스코프는 하위스코프에 접근할 수 있지만, 하위는 상위에 접근할 수 없다. 전역변수, 지역변수의 관계를 판단하는 영역을 말한다. 전역 Global 스코프 프로그램 전체에서 접근할 수 있다. 프로그램이 시작될 때 생성되며 프로그램이 종료될 때까지 유지된다. 데이터 덮어씌우기 가능하다. 전역 스코프에 선언된 변수는 프로그램 어디서든 접근할 수 있다. var globalVariable = 'I am a global variable'; // 전역 변수 function foo() { console.log(globalVariable); // 전역 변수 접근 가능 } foo(); console.l..