전체 글
-
데이터베이스 논리 모델링데이터베이스 2020. 10. 23. 13:04
논리모델링 주제영역 정의 데이터에 대한 상위 수준의 분류로 조직에서 관심을 가지는 기능 또는 주요 토픽에 대한 엔티티의 그룹 업무적인 연관성을 가진 엔티티를 그룹화함으로써 가독성을 향상시킴 사건의 진행에 따른 수직적 분할 업무연관성에 따른 수평적 분할 엔티티 의미 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 것 (개념모델링의 테이블) 정보화하고자 하는 사람, 장소, 사물 또는 개념 후보선정 행위 또는 객체의 집합인지 관리하고자 하는 속성이 2개이상인지 명사인지 비슷한 의미의 집합이 없는지 엔티티가 릴레이션이 아닌지, 속성으로 관리되어야 하는지도 검증 명명 표준단어를 사용 자연스러운 의미를 가장 명료하면서도 간단하게 관계 의미 데이터 집합에 속한 객체들 간의 연결고리 무결성을 보장해주는 장치 카디..
-
MySQL 쓰면서 하지 말아야 할 것 17가지데이터베이스 2020. 10. 22. 13:18
권장사항이다. 이것을 이해하면 당신의 어플리케이션이 더 나은 성능을 발휘할 것이다. 다만 이것이 사람의 실력을 판단하는 척도로 사용되서는 안 될 것이다. 작게 생각하기 조만간 규모가 커질거라면 MySQL ecosystem을 봐야된다. 그리고 캐싱 빡시게 안 하는 메이저 웹사이트는 없다. develooper.com의 Hansen PT랑 Ilia 튜토리얼 볼 것 처음부터 확장 가능하게 아키텍처 잘 쪼개놔야된다. 복제랑 파티셔닝 어떻게 할지 미리 계획 세워놔라. 파일 기반 세션 좀 쓰지마 그렇다고 너무 쓸데없이 크게 생각하지도 말 것 특히 성능하고 확장성 구분 못 하면 난감함 EXPLAIN 안 써보기 SELECT 앞에 EXPLAIN 이라고 붙이기만 하면 되는 것을 (..) 실행 계획 확인 타입 컬럼에 inde..
-
[node.js] 노드 js 교과서 정리 (1) 핵심 개념node.js(노드) 2020. 9. 25. 10:19
Node.js : Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임 런타임 : 특정 언어로 만든 프로그램들을 실행할 수 있는 환경 노드의 내부 구조 Node.js Core Library Node.js Bindings V8 libuv libuv 라이브러리 : 이벤트 기반, 논 블로킹 I/O 모델 구현 이벤트 기반 : 이벤트가 발생할 때 무엇을 할지 미리 등록해 두는 방식 이를 이벤트 리스너(Event Listener)에 콜백(Callback) 함수를 등록한다고 표현 이벤트 루프 : 이벤트 발생 시 호출할 콜백 함수들을 관리하고, 호출된 콜백 함수의 실행 순서를 결정하는 역할을 담당한다. 노드가 종료될 때까지 이벤트 처리를 위한 작업을 반복하므로 루프(loop)라고 부름 동기 ..
-
러닝 자바스크립트 정리(2) map,filter,reduceJavaScript 2020. 9. 24. 15:39
map map은 배열 요소를 변형 ex)숫자가 들어있는 객체에서 숫자만 꺼내오기, 함수로 구성된 배열에서 promise만 꺼내오기 *map과 filter은 모두 사본을 반환하며 원래 배열은 바뀌지 않습니다. const cart = [{name: "widget", price : 9.95}, {name: "gadget",price : 22.95}]; const names = cart.map(x=>x.name);//x의 name만 저장 const prices = cart.map(x=>x.price);//x의 price만 저장 const discountPrices = prices.map(x=>x*0.8);//price의 값에 전부 0.8을 곱하기 console.log(names); // [ 'widget', '..
-
러닝 자바스크립트 정리 (1)JavaScript 2020. 9. 24. 13:13
논리 연산자 다른 언어와 다르게 자바스크립트는 "참 같은 값"과 "거짓 같은 값"이 있음 거짓 같은 값 undefined null false 0 NaN '' 이 외에는 전부 참 같은 값이지만 염두해 둘것 모든 객체, valueOf() 메서드를 호출했을 때 false를 반환하는 객체도 참 같은 값에 속함 배열, 빈 배열도 ㅏㅁ 같은 값에 속함 공백만 있는 문자열 " " 문자열 "false" 해체 할당 ES6에서 새로 도입한 해체할당 이 기능은 객체나 배열을 변수로 '해체'할 수 있다 반드시 이름이 일치해야하고 변수를 미리 선언해야함 객체 해체 const obj = {b:2,c:3,d:4}; const {a,b,c} = obj; console.log(a); // undifined console.log(b);..
-
[JavaScript] 코딩 컨벤션JavaScript 2020. 9. 17. 12:40
나는 여태것 다른사람들과 협업할 일이 없었기 때문에 코딩 컨벤션이라는게 무엇인지도 몰랐으며 변수도 그냥 내가 원하는데로 만들었다. 그런데 이번 프로젝트를 진행하면서 각각의 변수명을 만들때에도 규칙이 있으며 무작정 코드를 줄이는것보다 코드를 늘리더라도 읽기 쉽게 만드는것이 더 중요하다는것을 알게 되었다. 그래서 적어본다 1. 들여쓰기 space와 tab을 섞어서 사용하지 않는다. 2. 문장의 종료 한 줄에 하나의 문장만 허용하며, 문장 종료 시에는 반드시 세미콜론(;)을 사용한다. 3. 명명 규칙 카멜 케이스을 사용한다. 참고사이트 : eslint.org/docs/rules/camelcase 생성자는 대문자 카멜 케이스를 사용한다. 상수는 영문 대문자 스네이크 표기법(Snake case)를 사용 (지역 변..
-
[Node.js] Web push 정리 (1) Service Workernode.js(노드) 2020. 9. 12. 22:31
알람 서비스 개발을 위해서 몇 주 정도 리서치를 한 후에 적어본다. 결과부터 말하면 FCM과 APNS를 사용 안 하고는 Push Service를 팀 단위로 개발한다는 것은 불가능에 가깝다는 것이다. 말 그대로 할 수는 있다. 그런데 이걸 실제로 실제 서비스로 돌려서 돈 받고 파는 것보다 FCM과 APNS로 만드는 게 효율성도 뛰어나고 돈도 절약된다.(앗! 사용료가 신발보다 싸다!!!) *카카오는 자체 Push Service를 사용한다 이제 본론으로 들어가자면 Web push Web push는 실제로 여러분이 흔하게 봤었던 기능이다. 실제로 유튜브, 혹은 커뮤니티 등 특정 사이트에 들어올 때면 사진과 같은 알림 허용 창을 봤을 것이다. 해당 사이트의 알림에 대한 권한 요청이 생기고 해당 권한을 허용한 뒤 ..
-
web push 전에 쓰던 알람을 받아오는 통신방법기타 2020. 9. 12. 21:33
web push를 들어가기 전에 기존에 통신방법에 대해 리서치 했었는데 놔두기에는 아쉬워서 적어본다. Polling 방식 클라이언트가 주기적으로 웹서버에게 새로운 내용이 있는지 물어보는 방식 Long Polling 방식 클라이언트가 웹서버에게 새로운 내용이 있는지 요청할경우 웹서버에서는 새로운 내용이 없다면 대답해주지 않다가 새로운 내용이 생기면 대답해주는 방식 Streaming 방식 요청에 대한 응답을 완료하지 않은 상태에서 계속해서 요청을 받는 방식