분류 전체보기
-
[컴퓨터 시스템] 3일차교육 2019. 11. 12. 01:50
- 아래 내용은 '컴퓨터 시스템(3판)' 책을 바탕으로 몰랐던 내용이나, 알고 있더라도 머릿속에 좀 더 각인시키면 좋을 것 같은 내용 위주로 기록했다. - 자세한 정리보단, 핵심만 남기는 것을 선호하는 편이라 친절하지 않을 수 있다. - 깊이 있는 학습을 원한다면 별도로 책(컴퓨터 시스템(3판))을 구입하여 학습하길 권한다. - 스스로 언제든 틀릴 수 있다는 사실을 인식하고 있기 때문에, 피드백은 언제나 환영한다. - 목표는 기본기 튼튼한 프로그래머가 되기 위함이다. 2진수 표현 - 컴퓨터는 숫자를 저장할 때 기본적으로 2진수를 사용 - 하지만, 263.3 같이 2진수로 표현하지 못하는 실수가 존재함 ex) 263 => 100000111 0.3 => 0.01001100110011...... 무한 반복 -..
-
[컴퓨터 시스템] 2일차교육 2019. 10. 15. 00:33
- 아래 내용은 '컴퓨터 시스템(3판)' 책을 바탕으로 몰랐던 내용이나, 알고 있더라도 머릿속에 좀 더 각인시키면 좋을 것 같은 내용 위주로 기록했다. - 자세한 정리보단, 핵심만 남기는 것을 선호하는 편이라 친절하지 않을 수 있다. - 깊이 있는 학습을 원한다면 별도로 책(컴퓨터 시스템(3판))을 구입하여 학습하길 권한다. - 스스로 언제든 틀릴 수 있다는 사실을 인식하고 있기 때문에, 피드백은 언제나 환영한다. - 목표는 기본기 튼튼한 프로그래머가 되기 위함이다. Context Switch - OS는 현재 프로세스에서 다른 프로세스로 제어를 옮길 때 현재 프로세스의 context(프로세스의 상태 정보)를 저장하고, 새 프로세스의 context를 복원시킴. 이를 Context Switch라고 함 - O..
-
[Node.js] 13일차교육 2019. 10. 9. 01:20
async/await 호출 시 응답이 안 오는 경우 - 여러 방법으로 해결 가능 - nginx에서 timeout 설정으로 해결 - 코드 단에서 해결 Sequelize ORM ManyToMany 관계에서는 어떤 방향에서든(양방향) 조회 가능 1. belongsToMany 관계 설정 2. 조회 시, 양쪽 어디서든 include 키워드 사용 SQL Injection 공격 - 사용자의 악의적인 입력 값으로 SQL Query를 조작하는 것 - 이러한 비정상적인 SQL Query를 통해 다음과 같은 공격이 가능 (1) 사용자 인증을 비정상적으로 통과할 수 있다. (2) 데이터베이스에 저장된 데이터를 임의로 볼 수 있다. (3) 데이터베이스의 시스템 명령을 이용하여 시스템 조작이 가능하다. - 데이터 입력이 가능한 ..
-
[컴퓨터 시스템] 1일차교육 2019. 10. 7. 22:38
- 아래 내용은 '컴퓨터 시스템(3판)' 책을 바탕으로 몰랐던 내용이나, 알고 있더라도 머릿속에 좀 더 각인시키면 좋을 것 같은 내용 위주로 기록했다. - 자세한 정리보단, 핵심만 남기는 것을 선호하는 편이라 친절하지 않을 수 있다. - 깊이 있는 학습을 원한다면 별도로 책(컴퓨터 시스템(3판))을 구입하여 학습하길 권한다. - 스스로 언제든 틀릴 수 있다는 사실을 인식하고 있기 때문에, 피드백은 언제나 환영한다. - 목표는 기본기 튼튼한 프로그래머가 되기 위함이다. Copy-on-write - 하나의 Resource를 공유하고 있는 프로세스 중 하나가 공유 Resource에다가 임의로 수정(Write)을 가할 때 그때 복사본이 만들어진다. - Optimization 기술 중 하나 - OS에서는 Copy..
-
[Node.js] 11일차교육 2019. 9. 27. 00:50
devDependencies - 개발에서만 사용하는 패키지 (개발용 패키지 ex> 목, 테스트 패키지 등) - 설치 명령어 : npm install --save-dev cron - 유닉스 계열의 Job 스케줄러 - 특정 시간, 날짜, 주기적으로 무언가 실행해야 할 때 사용 (스케줄링 목적) - crontab (cron table) 은 설정 파일 - 스케줄링 프로그램을 이용해서 특정 시간에 크롤링하도록 구현 가능 (특정 시간마다 원하는 URL 호출 가능) - 주의할 점은 우리 서버 시간과 다른 서버 시간이 다를 수 있음 크롤링 종류 - 정적인 사이트(정보)를 크롤링하는 경우 : 대한 통운에서 배송 정보를 가져오는 것 - 동적인 사이트(정보)를 크롤링하는 경우 : 동적인 액션에 따라 변하는 정보를 가져오는 ..
-
[Node.js] 10일차교육 2019. 9. 25. 00:32
템플릿 엔진을 사용할 때 단점 프런트 소스코드에 백엔드 코드가 들어가 소스 코드가 더러워질 수 있음 CSRF 공격(Cross Site Request Forgery) - CSRF 공격을 안 막아주면 포스트맨으로 API 서버를 찌를 수 있음 (특히, 쓰기 / 수정) - 대표적으로 2가지 방어기법이 있음 Referrer 검증 Security Token 사용 (A.K.A CSRF Token) 크롤링에 필요한 모듈 - request 모듈 : Node.js 내장 모듈로, 요청을 보내 HTML 정보를 가져옴 - cheerio 모듈 : 받아온 HTML를 파싱 하여 전체 페이지 중에서 필요한 부분만을 추출 - request-promise 모듈 : Promise를 지원하는 request 모듈 (async/await 사용 ..
-
1년차 개발자의 고민생각 2019. 9. 20. 21:56
새롭게 맡게 된 서비스 모든 개발자가 비슷한 마음이겠지만, 나 또한 내가 맡은 서비스에 대한 애착이 강한 편이다. 올 7월 1일, 새로운 서비스를 맡게 됐을 때, 함께 일하게 된 동료분이 프로젝트 구조와 코드를 같이 개선해 나가자고 하셨다. "네 당연하죠, 우리 같이 정말 멋지게 만들어 봐요"라고 말하고 싶었지만 오버하는 것 같아서 "네"라고만 짧게 대답했던 것 같다. 나에게 주어진 미션, 프랜차이즈 매니저 사이트 그로부터, 얼마 후 미션을 받았다. 프랜차이즈 매니저 사이트를 만드는 것 사실 기존 소스코드를 참고하면 됐기에 크게 어려운 작업은 아니었다. 하지만 이 미션을 받았을 때, 개인적으로 한 가지 이루고 싶었던 게 있다. 단순히 쉽게 구현하기 위해 기존 코드를 그대로 재활용하지 말고 "구조화하면서 ..
-
[Node.js] 8일차교육 2019. 9. 18. 01:21
cartList = [ ] vs cartList = { }, 배열 vs 객체 - cartList를 배열로 선언한 뒤 cartList [100]에 값을 세팅하면 0~99까지 공간이 자동으로 생성됨 ㄴ 0~99까지 공간을 사용하지도 않는데 자동으로 생성되는 건 비효율적임 ㄴ 따라서 배열보다 객체를 사용했음 JSON.stringify, JSON.parse - stringify : 자바스크립트 객체를 -> string ( 쿠키 값은 string ) - parse : string -> 자바스크립트 객체로 장바구니 기능 (복잡함) - 구현할 수 있는 다양한 방법이 존재함 (쿠키, 세션 등등) - 다양한 케이스를 고려해야 함 ㄴ 비회원인데 상품을 장바구니에 담는 경우 ㄴ 회원인데 상품을 장바구니에 담는 경우 ㄴ 비회..