본문 바로가기

반응형

전체 글

(97)
[항해99]WIL(3주차) 1. 이번주 학습내용 및 보완점 Node.js 주특기 주차가 시작되었다. 이번주는 팀과제, 개인과제를 수행하며 주특기 기본을 다졌다. - 개인 과제는 기한내에 제출했으나 보완할 점이 많아 보여 아쉬움이 남는다. - 팀과제에서 공부한 내용을 복습하며 소화하도록 한다. - 깃헙 사용법을 어느정도 익혔다. 이번주는 팀작업이 없었지만 앞으로 팀원들과 원격저장소 협업도 매끈하도록 더 연습하겠다.. - JS문법 기초가 부족하다. 외부 인강을 듣도록 한다. 2. 이번주 키워드 2.1 RESTful API : 이전 블로그에 정리한 포스트로 대체 https://upsanddowns.tistory.com/6 2.2 package.json : 프로젝트의 정보를 정의하고, 의존하는 패키지 버전 정보를 명시한다. 이름과 버전 ..
객체지향 프로그래밍이란 1. 정의 프로그래밍 방법론의 일종. 연관된 변수와 함수를 한 덩어리로 구조화하여 표현한다. 어플리케이션을 현실과 같이 객체 단위로 쪼개고 객체들이 상호작용하면서 시스템이 동작 객체는 클라스를 통해 만들 수 있으며 클라스는 객체의 설계도가 된다. 2. 장점 클라스로 정의된 함수들은 상대적으로 적은 매개변수를 가지며 이는 유지보수에 유리하다. 3. 특징 캡슐화 : 객체의 데이터를 외부에서 변경하지 못하도록 하고, 접근 제어 메소드로만 변경할 수 있게한다. 추상화 : 불필요한 정보는 숨기고 객체가 가진 동작을 기준으로 추상화하여 사용의 편의성을 높인다 상속 : 새로운 클래스가 기존 클래스의 자료와 연산을 이용할 수 있게 하며 하위 클래스로 가며 기능을 확장할 수 있다. 다형성 : 한 요소에 여러 개넘을 넣는..
쿠키, 세션, 캐시 1. 쿠키 : 클라이언트가 관리하며, 보안취약, 조작 가능하기때문에 민감하거나 중요한 정보를 담지 않는다. ex) 공지사항 오늘 다시 확인 안함, 비회원으로 장바구니 담아도, 로그인하면 장바구니에 남도록 함 2. 세션 : 쿠키에 담기 부적절한 정보를 세션에 담아 서버에서 관리. 단, 세션을 남용하면 서버에 부하 발생 3. 캐시 : 가져오는데 비용이 드는 데이터를 한번 가져온 뒤로 계속 저장하여 사용한다. ex)db에서 이미지 꺼내오는데 리소스 많이 필요하니 캐시에 저장, 임시로 저장해 사용하는 것. 레디스 서버
[항해99]TIL_몽구스 컬렉션 이름 뒤에 붙는 's' 1. 몽구스를 통해 데이터를 저장하면 컬렉션 이름 끝에 's'가 붙는다. 그러나 goods와 같이 s로 끝나는 단어에는 s가 추가되지 않아 일관성이 떨어진다. 2. 아래의 코드를 추가하면 컬렉션 뒤에 붙은 's'를 없앨 수 있다. mongoose.pluralize(null);
[항해99]TIL_비밀번호 해싱 1. 주특기 시작 항해 4기 3주차가 시작됐다. 타이트한 커리큘럼 탓인지 100명 중 30여명이 벌써 중도하차를 했다. 스스로에게 다음 하차는 내가 될 수 있다는 공포분위기를 조성하며 느슨해진 책상에 긴장감을 준다. 2. TIL 이번주 부터 3주간 주특기인 Node.js를 익히는 시간이다. 이번주 과제는 Node.js와 express로 "로그인 기능이 없는 블로그 만들기" 로그인 기능은 없지만 게시물 수정과 삭제에 암호를 대조하도록 요구하고 있어 오늘은 비밀번호 보안 대해 공부해보았다. 1. 비밀번호는 평문으로 저장하지 않으며 해싱하여 저장한다. 해싱을 통해 패스워드 ex)"1234"를 넣어서 ex)"1q2w3e4r5t"와 같은 지정된(고정된) 값으로 변환할 수 있다. 해싱은 단방향으로만 작동하기 때문에..
[항해99]WIL(2주차)_ECMAScript, ES5~ES6 1. ECMAScript란 크로스 부라우징 이슈를 해결하기 위한 JS의 표준안을 ECMAScript라 한다. 넷스케이프는 Javascript를, 마이크로소프트는 JScript를 개발했는데 두 언어는 서로 호환성 문제가 있었다. 이를 해결하기 위해 자바스크립트를 ECMA(European Computer Manufacturers Association)라는 비영리 기구를 통해 표준화한다. 2. ES5, ES6의 차이 Primivie Type의 추가 버전 ES5 ES6 발표 2009년 2015 데이터 타입 string, number, boolean, null, and undefined. 원시타입에 symbol 추가 변수의 선언 var. let(변수) const(상수) Classes 추가 새로운 키워드로 Clas..
[항해99]TIL_알고리즘5 문제1 : 하샤드 수 1.1 풀이 - 정수 x의 자릿수 합을 만들어야한다. 이를 위해 String()과 split()을 활용 x를 배열로 만들어 나눈다. - reduce()를 활용, num에 누산한다. - 삼항연산자를 활용, 정수 x와 누산한 값num을 나눴을때 ? 떨어지지 않으면 false : 나눠 떨어지면 true function solution(x) { let arr = String(x).split(''); let num = arr.reduce((a, b) => a + parseInt(b), 0); return x%num ? false : true } 1.2 반복문 활용한 풀이 function Harshad(n){ var result ; var sum = 0; var arr = String(n).s..
[항해99]TIL_알고리즘4 문제1 : 정수 제곱근 판별 1.1 풀이(오답) - 제곱근을 구하는 Math.sqrt()를 이용 num을 초기화 - 양의 제곱근 중 가장 작은 정수가 2라는 점을 이용, - num이 2와 같거나 크다면 Math.pow를 이용 num+1에서 제곱하였으나 아래와 같은 오답이 존재 1) num으로 정수가 아닌 값이 출력되는 경우 (ex : 3.123412412...) 2) solution(1)을 실행하는 경우 function solution(n) { let num = Math.sqrt(n); return num/1 >= 2 ? Math.pow(num+1, 2) : -1; } 1.2 풀이(수정) - num을 1로 나눈 나머지가 0인지 확인하여 정수 여부를 체크 function solution(n) { let n..

반응형