본문 바로가기

전체 글

(364)
Cookie란? 1. Cookie의 배경 Cookie의 배경에는 HTTP의 특성인 Stateless가 있다. [Case Study] 코딩을 배우고있는 김코딩이 중요한 약속이 생겨 온라인으로 옷을 하나 구매하려고 한다. 의류 쇼핑몰 사이트를 둘러보면서 몇 가지 마음에 드는 옷들을 장바구니에 넣었다. 상의도 보고, 아우터도 보고 여러 페이지를 돌아다니다가 갑자기 의문이 들었다. "HTTP는 Stateless하다고 했는데, 이렇게 다른 페이지들을 마구 돌아다녀도 왜 장바구니가 유지되는거지..?" 원래 HTTP는 Stateless, 즉 무상태성이다. 웹사이트와 유저는 연결되어있지 않다. ex: Stateless의 간단한 예 클라이언트 --> 서버 : 삼겹살 먹을래? 서버 --> 클라이언트 : 응! 클라이언트 --> 서버 : 자..
Hashing, 그리고 Salt값 먼저, 유저가 클라이언트를 통해 이메일 관련 데이터를 요청할 때, 이메일주소와 password를 가지고 요청한다고 생각해보자. CASE 1 : DB에 password가 그대로 저장되어있는 경우 1> 서버가 클라이언트러부터 유저의 이메일주소, password를 받는다. 2> 서버는 DB에 email, password를 요청하고 받은 후, 클라이언트로부터 받은 정보와 비교한다. 3> 일치하면 DB에 다시 해당 이메일주소의 관련 정보를 요청해서 클라이언트에 반환해준다. **여기서! 이메일 주소는 공개되어도 되지만, password는 조심해야한다. 해커가 DB에 접근해서 유저의 비밀번호를 쉽게 알아버리면, 비밀번호는 하나로 여러 사이트에서 사용하기 때문에 서비스 하나에 패스워드가 뚫리게 되면 은행, 페이스북, ..
[29주차] 2021. 11. 23. 화. 🌅AM * 여전히 너무나도 어려운 알고리즘. 어려우면 더 열심히 알고리즘 공부를 해야하는데 솔직히 거의 시간을 투자하지 않고 있다. --> 알고리즘에 좀 더 시간을 많이 할애하자. 좀 더 머리를 많이 쓰고, 치열하게 고민하자. 적어도 아침 9시부터 10시까지는 꼭! 반드시! 알고리즘 공부를 하자. * 세션기반인증, 토큰기반인증에 대해 공부하였다. 아직 완벽하게 이해하지는 않았지만 약 70%정도 이해가 된 상태. --> 완벽하게 공부해보자. 🌆PM : 모르는게 나오면 처음에는 약간 얼타는게 있는 것 같다. 오늘 같이 한 페어분처럼 차분하게 하나하나 읽어가며 집중해서 보다보면 답은 다 나와있다. 늘 염두해두어야할 건, 익숙하지 않아 어렵게 느껴지는 것. 📚오늘 배운 것: 세션기반인증, 토큰기반인증, JWT,..
package.json에 있는 "dependencies"의 역할 및 npm install(ft. 모듈이란?) dependencies를 설명하기 전에, 먼저 모듈에 대해서 간단하게 설명을 해야할 것 같다. 모듈이란 "독립된 기능을 갖는 것(함수, 파일)들의 모임", "애플리케이션을 구성하는 개별적 요소로서 재사용 가능한 코드조각"을 말한다. 일반적으로 기능을 기준으로 파일 단위로 분리한다. (출처:모던 자바스크립트 Deep Dive) 모듈은 크게 2가지로 나눌 수 있다. 1> 외장 모듈 - 일반 개발자들이 만들어놓은 모듈(라이브러리) - 외장모듈을 사용하기 위해서는 npm(Node Package Manager)을 사용. 2> 내장 모듈 - Node.js를 설치하고 나면, 그 안에 이미 내장되어 있는 모듈. - 내장 모듈은 이미 존재하고 있으므로 npm을 사용하지 않는다. (출처:https://victorydntm..
[28주차] 2021. 11. 17. 수. 너무나도 공부가 되지 않은 날이었다. 정신적으로 힘든 날. 집중도 전혀 안되고, 뭔가 슬럼프가 왔다. 정말 공부가 너무나도 하기싫었다. 그런 날도 있는 거다. 너무 심각하게 받아들이지 말자. 어차피 이 공부는 장기전이다. 드림코딩 엘리님도 코딩의 코자만 봐도 토할것같았던 적이 있다고 하셨다.. 괜찮다. 다시 자리에 앉아서 마음다잡고 공부하면 된다. 그만큼 더 열심히 하면 된다. 🌅AM * 알고리즘시간에 최선을 다해서 문제 풀자. 🌆PM 지겨워서 스터디카페에 갔는데, 이상하게 클래식 음악도 방해가 될 정도로 집중이 잘 되지 않았다.그래도 다행인건 마음맞는 페어를 만나 내일 할 걸 미리 오늘 같이 페어활동을 했다.시간을 허비할 수도 있었는데 다행이었다. 🧘🏻 내 마음속 : 오늘은 생략! 📚오늘 배운 것: O..
im-sprint-cmarket-database 2. 서버 -1 1. 먼저, 서버 폴더로 들어가서 npm install 명령어로 필요한 모듈을 설치. --> npm install 명령어를 적으면, package.json에 'dependencies'에 적혀있는 모듈들이 한꺼번에 설치된다. "dependencies": { "@codestates-cc/submission-npm": "^1.1.3", "cors": "^2.8.5", "dotenv": "^8.2.0", "express": "^4.17.1", "morgan": "^1.10.0", "mysql": "^2.18.1", "nodemon": "^2.0.7" } 여기서 'mysql'모듈 : Cmarket Server가 MySQL server와 상호작용할 수 있게 한다. 2. 비밀번호를 코드에 작성할 수도 있겠지만, 보안..
im-sprint-cmarket-database 1. 스키마, 시드 파일 확인(schema.sql 파일 & seed.sql파일) 1. 먼저 mysql에 접속해 cmarket 데이터베이스를 생성한다. mysql -u root #mysql 접속. pw없으면 -p를 안적어줘도 된다. CREATE DATABASE cmarket; # cmarket이름의 데이터베이스 생성 2. 미리 구성되어있는 Cmarket 스키마(schema.sql)를 기반으로, MySQL에 cmarket데이터베이스에 테이블을 생성한다. --> im-sprint-cmarket-database 파일을 보면, server폴더에 schema.sql파일이 존재한다. 그 파일에는 Cmarket 스키마가 구성되어있다. 이 스키마를 토대로 MySQL에 아까 생성한 cmarket 데이터베이스에 테이블을 생성한다는 의미. 먼저, git clone을 한 im-sprint-cmarket-d..
[26주차] 2021. 11. 04. 목. 오늘은 HA Section3 Coplit 테스트 날!! 먼저, Coplit 알고리즘 테스트 소감 - 알고리즘 공부 더 열심히 할걸! 알고리즘이 많이 부족하다는게 느껴진다. 다 통과하기는 했는데 사실 찝찝한 면이 없지않아 있다. 테스트가 모두 통과되었습니다!가 딱 떴을때의 그 희열이란.. 그 기분을 자주 느끼고싶다. 결국 알고리즘을 자주 풀어보면 패턴이 딱 보인다는데.. 나도 그런날이 오겠지? 적어도 하루에 1개는 완벽하게 해결하자. - 디버깅 하는 방법에 대해서 공부를 좀 해야겠다. 🌅AM * 알람은 7시로 맞춰놨는데 일어난 시간은 8시..반.. 왜자꾸 늦게 일어날까. 역시 난 조금의 강제성이 필요한 듯 하다. 강제성이 부여되어야 억지로라도 일찍 일어나지. 특히 해가 늦게뜨고 추우니까 더더욱 일어나는게 ..