목록전체보기 (19)
결국엔 프로그래밍
노드는 코드를 모듈로 만들 수 있다. 이 점에서 브라우저의 자바스크립트와 차이가 있다. 모듈 특정한 기능을 하는 함수나 변수들의 집합 모듈은 모듈 자체로도 하나의 프로그램이지만, 다른 프로그램의 부품으로도 사용된다. 3가지 자바스크립트 파일의 예시를 통해 자세히 살펴보자면, var.js 파일 const odd = '홀수입니다.'; const even = '짝수입니다.'; module.exports = { odd, even, }; func.js 파일 const { odd, even } = require('./var'); function check(num){ if(num%2){ return odd; } return even; } module.exports = check; index.js 파일 const { ..
함수에서 파라미터로 받아온 객체 내부의 값을 조회할 때, 구조 분해 할당(비구조화 할당)을 사용하면 더 간결하게 코드를 작성할 수 있다. // 함수에서 객체를 파라미터로 받기 function print(hero) { const text = `${hero.alias}(${hero.name}) 역할을 맡은 배우는 ${ hero.actor } 입니다.`; console.log(text); } 위와 같이 함수에서 객체를 매개변수로 받아 호출하는 경우 복잡한 코드('객체.요소' 형태)를 작성해야 하지만, // 구조 분해 할당을 활용 (변수 선언) function print(hero) { const { alias, name, actor } = hero; const text = `${alias}(${name}) 역할..
var number = 1; 이런식으로 변수를 선언 할 수 있는 var 이라는 키워드가 있다. 기존에는 변수 선언이 var로만 가능했으나 ES6 이후 더 이상 사용하지 않는다. 대신 let과 const를 사용한다. var은 let과 달리 똑같은 이름으로 여러번 선언을 할 수 있고, 사용할 수 있는 범위가 다르다. var의 단점 1. 정의된 변수가 함수 스코프를 가진다. 2. var 변수를 코드 가장 바깥에 정의했을시 전역 변수가 된다. 3. 반복문에서 정의된 변수가 반복문이 끝난 후에도 계속 남아있다. 4. 호이스팅(hoisting) : var로 정의된 변수는 그 변수가 속한 스코프의 최상단으로 끌어올려진다. 5. 한번 정의된 변수를 재정의 할 수 있다. 6. 재 할당 가능한 변수로 밖에 만들 수 없다...
passport 에서는 전략을 사용한다. (전략: 로그인을 어떻게 할지 적어놓은 파일) - localStrategy: email, password로 로그인 하는 경우 - kakaoStrategy: kakao로 로그인 하는 경우 (로그인하는 과정을 카카오가 대신 수행해줌) 1. localStrategy - password.authenticate 사용시 미들웨어 확장법을 사용한다 과정 1. front 에서 로그인을 누를 때 이메일과 비밀번호를 보내준다 2. post 하면 password.authenticate(local)실행 3. localStrategy.js 실행
SSAFY 삼성 청년 SW 아카데미 삼성과 고용노동부가 함께 취업 준비생에게 SW 역량 향상 교육 및 다양한 취업지원 서비스를 제공하여 취업에 성공하도록 돕는 프로그램. SSAFY의 인재상 SSAFY 교육과정 총 12개월의 교육을 통해, 문제 해결 능력을 갖춘 인재를 양성하는 것을 목표로 한다. 크게 3가지의 교육이 진행된다. 몰입형 집중 코딩 교육 실습 중심의 강도 높은 코딩 교육 미션 달성을 통한 학습 실전형 자기주도 학습 실제 업무와 유사한 프로젝트 코드 리뷰, 페어 프로그래밍 등 상호 학습 성과 창출형 교육 경진대회, SW 테스트 PJT 수행으로 개인 포트폴리오 준비 SSAFY 교육 일정 5개월 기본과정 1개월 Job Fair 5개월 심화과정 1개월 2차 Job Fair SSAFY 기본과정 커리큘..
비동기 작업의 이해 웹 어플리케이션에서 서버 쪽 데이터가 필요한 경우 Ajax 기법으로 서버의 API를 호출함으로써 데이터를 수신한다. 서버의 API를 사용하는 경우, 네트워크 송수신 과정에서 시간이 걸리기 때문에 즉시 처리되는 것이 아니라 응답을 기다렸다가 받은 데이터를 처리한다. (비동기적 처리) 작업을 동기적으로 처리하는 경우 요청이 끝날 때까지 기다리는 동안 중지 상태가 되므로 다른 작업을 할 수 없다. 작업을 비동기적으로 처리하는 경우 웹 어플리케이션이 멈추기 않기 때문에 여러가지 요청을 처리 할 수 있다 기다리는 과정에서 다른 함수도 호출할 수 있다. API 호출시 & setTimeout 함수로 특정 작업을 예약할 때 작업을 비동기적으로 수행한다. // setTimeout example fun..
1. mac에서 MySQL을 실행시키는 법 (설치 생략) (root 권한으로 MySQL을 실행) $ cd /usr/local/mysql/bin $ ./mysql -uroot -p 2. SQL이란 Structured Query Language RDBMS에서 자료를 관리 및 처리하기 위해 사용되는 언어 3. MySQL의 데이터 타입
최근 ios 프로젝트를 공부하면서 몇 일간 commit을 했다. 분명 commit이 된 것을 확인했는데, 프로필 상의 잔디가 심어지지 않아서 문제가 무엇인지 찾아봤다. 결국 찾아낸 원인은 바로! github에 등록된 email과 git 설치에 사용된 email이 달랐기 때문. 이 문제를 해결하기 위해, 터미널을 켰다. 이를 통해 내가 알아내고자 했던 부분은 바로 "user.email" 현재 git에 저장된 나의 이메일은 ccobalt~~@gmail.com 그렇다면, 이제 github에 저장된 이메일은 뭔지 알아본다. github.com에서 나의 프로필 페이지를 보면, 우측 상단에 내 프로필 이미지가 뜬다. 프로필 이미지(클릭) - settings - Emails - 이메일 확인. Email이 위에서 확인..
int clen; //해놓고 recvfrom(ssock, (void *)buf, MAXBUF, 0, (struct sockaddr *)&client_addr, &clen); //했더니 오류가 뜬다. /*이때는 1) int clen 을 socklen_t clen 으로 바꾸던지 2) &clen 을 (socklen_t*)&clen 해주면 된다.