취뽀에 성공하고 당장 다음날 출발하는 비행기를 사고 지금 삿포로에 와있다.나의 20대 제 2막 시작을 self celebration 하기 위해 있는데,사실 아직도 와닿지 않아서 어떻게 잘 작성해야할지 모르겠다.하지만 취준을 하면서 느낀것과 배운 것을 덜 까먹기 전에 글을 남기려고 한다. 미국에서 인턴을 마치고.1년간의 인턴을 마치고 최종 후기를 적지 못했다.여러가지 이유가 있었는데 뭐랄까, 꿈꾸다 온 것 같았다.반갑게 맞이해주는 엄마 아빠와 인사하고 새벽에 인천공항을 빠져나오면서 내가 정말 집에 왔구나 싶었지만,어제는 샌프란시스코의 오렌지 하늘, 오늘은 한국의 오렌지 하늘인게 현실감이 없으면서 먹먹하기도 하고 행복하기도 했다.하고 싶었던 것들 하고, 먹고 싶었던 것들을 먹고, 만나고 싶었던 사람들을 ..
리액트를 처음부터 다시 공부하면서 create-react-app 없이 바닥부터 바벨과 웹팩 설정을 하면서 생긴 오류에 대해서 포스팅해보겠다. 시행착오의 과정이 궁금하지 않은 분들은 밑의 를 확인해주세요! 바벨을 실행하는 여러가지 방법 중 웹팩에서 babel-loader로 실행하는데 생긴 오류이다. 오류는 다음과 같은데, JSX의 태그 문법이 변환이 되지 않아 에러가 나는 상황이다. 구글링을 했을 때 여러 해결방법을 타고 타서 돌아돌아 해결했는데 이 부분을 정리해고자 한다. 에러를 자세히 읽었을때 @babel/preset-react를 설치했음에도 불구하고 저 라이브러리를 npm이 제대로 찾지 못해서 생기는 이슈 같았다. 해결 방법을 찾아보니 1).babelrc 생성 2)babel.config.js 생성 3..
http 모듈로 서버 만들기 node는 서버가 아니다 -> js 실행기일 뿐, 서버 실행 코드를 작동시켜줄 뿐. 서버와 클라이언트는 요청과 응답을 http 프로토콜(규약)에 맞게 주고받음 코드가 바뀌면 서버는 재시작 되어야 함 (지켜보고 있다가 특정 조건에 재시작하게끔 실행코드를 짜둘 수는 있다) 1. http 요청에 응답하는 노드 서버 createServer 로 요청 이벤트에 대기 콜백함수로 객체로 정보를 받음 ->req: 요청에 관한 정보, res: 응답에 관한 정보 res 객체의 메서드 res.writeHead: (Network Response Headers)응답에 대한 정보를 기록-> (첫번째 인수)http 상태코드, (두번째 인수)응답에 대한 정보로 이루어짐 res.write: 클라이언트로 보낼..
파일 시스템 접근하기 노드에서 fs모듈을 사용하면 파일 시스템에 접근할 수 있다. 즉, 메서드들을 이용해 파일과 폴더의 생성, 삭제, 읽고 쓰는 것을 가능하게 하는 것이다. fs 모듈을 사용하는 순서는 다음과 같다. fs 모듈을 불러온다 파일 경로를 지정한다(node를 실행하는 콘솔 기준으로) readFile 메서드의 결과물은 버퍼이므로 텍스트로 읽어오고 싶으면 toString()을 이용해야 한다. 코드로 확인해보도록 하자! const fs = require('fs'); fs.readFile('./readme.txt', (err, data) => { //노드 모듈에서 콜백 함수 인자가 대부분 에러, 데이터 순이다 if (err) { throw err; } console.log..
async & await 가장 최근에 나온 비동기 처리 패턴 문법으로, callback 함수와 Promise의 단점을 보완해주는 것이 특징인 async / await 문법을 살펴보도록 하겠다. async & await 기본 문법 async function 함수명() { await 비동기(); } 비동기로 실행할 함수 앞에 async 예약어를 붙인다. 함수 내부 로직 중 비동기 처리 코드 앞에 await 을 붙인다. 이때, 이 비동기 처리 로직은 Promise 객체 를 반환한다. (일반적으로 axios와 같은 api 호출 함수이다) 예외 처리 Promise 에서 .catch를 사용했던 것처럼 try catch문을 사용한다. catch로 코드를 실행하다가 발생한 네트워크 오류, 타입 오류 등등과 같은 에러들..
JS 엔진은 동시에 여러가지를 처리할 수 없다. 이에 순서대로 코드를 실행하는 것이 아닌(동기적 실행), 코드의 실행 완료를 기다리지 않고 다음 코드를 먼저 실행하는(비동기적 실행) 것이 가능하도록 한 JS의 설계들을 살펴보도록 하겠다. Callback 함수 첫번째로 JS에서 callback 함수로 비동기적 실행이 가능하다. (콜백함수가 꼭 비동기적으로만 쓰이는 것은 아니다) callback 함수는 다른 함수의 매개변수로 넘겨진 함수를 의미하고, 어떤 이벤트가 발생한 후 이 콜백 함수가 다시 호출되며 실행된다. 함수 안에서 실행되는 함수이기 때문에 보통 익명함수로 작성된다. // 간단한 callback 함수 예시 function printNumber(num){ num(); //callback 함수 } p..
새로 만든 레포에 파일을 푸쉬하려고 하니까 에러가 생겼다. 첫번째 "Updates were rejected because the tip of your current branch is behind" 힌트를 보고, 깃허브 레포를 생성하면서 README.md 파일을 추가해서 에러가 생긴 것 같다는 생각이 들었다. pull을 해보고 push를 하자. pull 을 해도 merge 가 refuse 된다. 문제 원인과 해결방법을 구글링 해보니, 깃허브 레파지토리를 생성할 때, README.md 파일을 생성했기 때문에 발생한 문제가 맞았다. 데이터 유실과 같은 문제가 있을 수 있는 부분 때문에 git에서 처리하지 않도록 에러가 발생하는 것이라 한다. 레포에 처음으로 push 하는거라, 손상될만한 파일들이 없어서 강제로..
각오했던 1학기가 끝났다. 사실 종강은 3주 전에 했지만, 부산 여행도 다녀오고 에너지를 다시 채우는 데에 시간이 걸렸다. 어떤 경험이든 일단 시작해보고 생각하자, 라는 마인드를 가진 덕분에 내 1학기가 이처럼 다채롭게 힘들고 재밌을 줄 예상하지 못했다. 아쉬움이 하나도 남지 않는다면 거짓말이겠지만, 상반기를 후회없이 열정으로 불태우고 배우고 얻은 것들이 많아서 하반기도 부지런히 달리고자 하는 마음이 자연스럽게 생겨났다. 이번학기의 활동을 크게 4개로 나누어 보자면, 6전공 수업 & 스터디 , 팀플 , 외주 , 과외 가 있었다. 이들을 거치면서 배우고 느낀점을 간략하게라도 기록해보고자 한다. 사망년이라면 이 정도 전공은 버텨야죠 이번 6전공에서 중요하다고 생각하는 과목을 꼽자면 자료구조, 데이터베이스, ..