[Security] Same-Origin-Policy & Cross-Origin-Resource-Sharing ajax 호출할때 자주만나는 에러이다.protocol / host / port가 모두 일치해야 한다.일치하지 않는 리소스 요청은 브라우저에서 제한하고 있다. 요즘 트렌드인 SPA(Single Page Application)에서는View 서버와 Restful API 서버을 따로 두는게 추세이므로 다를 수 있다.최근 react-create-app 으로 제작한 smart-book에서 같은 port로 API 서버를 같이 두기 어려워서 API 서버를 port만 다르게 따로 만들었다... 이 문제를 해결하기 위해서 여러가지 방법이 있는데,그중에 하나가 서버쪽에 response header 값에 Access..
개발자가 갖추어야 할 9가지 기술 - 박종천님 2017년 초에 입사하고 얼마 안돼서 보게된 영상이다.이때 보고 좋다라는 생각이 들어서 북마크 해놓았다가,요즘 북마크를 정리하면서 다시 보았다. 그때 느꼈던 것과 다른 새로운 생각이 든다.아마도 지금까지 1년 반이라는 시간동안 경험했던 내용과영상의 내용이 서로 연관되어 새로운 정보를 만들어 주는 것 같다. [Hard Skills] 1. Basic Knowledge / 기초 지식들 2. Understanding for product / 제품에 대한 이해 3. Development Cycle / 개발 싸이클 [Soft Skills] 4. Project Management / 프로젝트 관리 5. Team Management / 팀 관리 6. Process / 프로..
[keyword] 결합도 & 응집도(Coupling & Cohesion) 컴퓨터공학을 공부하던 대학생때 처음 듣고, 달달 외웠던 개념이다.결합도를 낮추고 응집도를 높여야해!문제를 풀기위해서 강제로 머릿속에 주입시켰던 개념.현업에서 개발을 하면서, 이 것은 암기가 아닌 그냥 자동으로 떠오르는 개념이 되었다. [결합도(Coupling)]결합도가 낮아야 하는 이유는 무엇일까?이때 기준은 모듈이다. 작업을 수행하는 최소단위.Input -> [ module ] -> Output특정 input에 대해서 원하는 output을 얻을 수 있는 최소단위.함수라고 생각하면 쉽다. 함수간에 서로가 서로를 바라보고 의존하는 경우를 우리는 결합도가 높다고 한다.이 경우에는 한 가지 작업을 수행할때, 두가지 함수가 필요하다.결국 ..
[CSS] CSS selector CSS Selector를 잘 알면 jQuery를 사용해서 DOM을 조작하는 것이 너무 쉽다.쉬우면 재미있고 재미있으면 오래기억 남으니까 CSS Selector를 공부를 하기로 했다. 공부를 하기 위해 찾은 사이트를 기록하려고 한다.http://flukeout.github.io/Level 1~32 까지 게임으로 진행할 수 있다. 1. plate2. bento3. #fancy4. plate apple5. #fancy pickle6. .small7. orange.small8. bento > orange.small9. bento, plate10. *11. plate *12. plate + apple13. bento ~ pickle14. plate > apple15. orange..
[Rule] 보이스카우트 규칙 "캠핑 장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라! 보이스카우트 규칙 (클린 코드, p50)" 누구나 한번쯤은 들어봤을 규칙이다.개발하다 보면, 예전에 내가 작성했던 코드와 만나거나 or 다른 사람이 예전에 작성해 놓은 코드를 만나게 된다. 그 코드를 보면서... 왜 내가 이렇게 짰지? or 왜 이걸 이렇게 짜셨지? 라는 생각이 들면그냥 넘어가지 말고 더 나은 코드로 수정하라는 규칙이다. 사람은 한번에 완벽하고 좋은 코드를 만들기 힘들다.그렇기 때문에 계속 반복해서 보면서 나은 코드를 만들어야 한다. 이 규칙을 통해서 우리는,예전에 코드를 작성할 때는 몰랐지만,나중에 알게된 좋은 개념을 코드에 적용해 볼 수 있다. 점점 더 나은 개발자가 되기 위해서 이 개념을 잊지말..
[20s Bucket List] 20대에 버킷리스트를 기록하면 좋겠다는 생각이 문득(?)들어 이렇게 적게 되었다.(다른 분의 블로그를 눈팅하다가 있길래 따라하는거는 아님 ㅎ.ㅎ) - 통잔잔고: ₩100,000,000- 자동차사기- 68kg + 복근- 구글 / 페이스북으로 ~ (?): 구글 코드잼 티셔츠 받기. (전세계 1000등 이내) 모두 어려운 일이지만, 지금처럼만 한다면 가능한 일이지 않을까?현재 나이 27.8살(남은시간 2.2년) 충분하다. It's enough for me...
[BFS & DFS] tomato [BFS: Breath First Search] - 재귀함수(스택)깊이까지 들어가서 탐색하고 다시 돌아오는 알고리즘;백트래킹 알고리즘에 활용되는 개념이다.주로 스택을 이용한다. (재귀함수의 콜스택)최대 탐색 횟수를 구하는 경우, 기존 담긴 값과 이번에 담을 값을 비교해서 탐색을 계속할지 확인한다. [DFS: Depth First Search] - 큐순서대로 닿는 곳을 탐색하는 알고리즘;큐에 순서대로 저장해서 하나씩 빼면서 확인한다.계속 큐에 집어넣고, 하나씩 꺼내면서 큐가 빌때까지 계속 반복한다.큐에 담기는 순서대로 값이 증가하기 때문에 기존에 담긴 값을 확인할 필요가 없다. 값이 없는 경우에만 새롭게 담는다. // tomato BFS(Breath First Search..
[DataStructure] Queue? // Queue // enqueue, dequeue, isEmpty // generic template class #include using namespace std; template class Queue { private: T *queue; int size; int front, back; public: Queue(int size) { this->queue = new T[size]; this->size = size; this->front = this->back = 0; } void enqueue(T item) { int pos = this->back++ % size; this->queue[pos] = item; } T dequeue() { int pos = thi..
설득의 과학이 들려주는 6가지 비밀 (feat. 설득의 심리학 - 로버트 치알디니) 다른 사람을 설득하기 전에 한번 보면 좋은 영상.다른 사람을 설득하는 일은 무척 어려운 일이다.왜냐하면, 그 사람의 생각은 (설령 다른 사람이 틀렸다고 하더라도) 그 사람에게는 100% 옳은 답이기 때문이다. 모든 사람의 생각은 조금씩 서로 다르다.다른 사람에게 나의 생각을 동의시키려면, 논리적인 근거로도 힘들때가 있다.(꽉막혀서 얘기를 듣지 않는사람, 비논리적인 사람) 세상에는 논리적인 사람이 50%, 비논리적인 사람이 50% 존재한다.50%의 사람만 만날 수 있는 방법은 없다.따라서 나머지 50%을 쉽게 설득하기 위해 6가지 원칙을 배워야 한다. 1. 상호성 2. 희귀성 3. 권위 4. 일관성 5. 호감 6. 사회적 증거
[Michael Carreon - The simple things] (Woman)And it's the simple things you do그리고 네가 하는 단순한 것들I just can't get enough of you난 네게 질릴 수 없어It's that perfume that you wear그 향수 네가 입은 그 옷And the way you do your hair그리고 네가 머리하는 방식That I love so much난 그게 너무 좋아 And it's the simple things you say그리고 네가 말하는 간단한 것들And how in bed we play그리고 어떻게 우리가 침대에서 노는지It's the way you kiss my cheek네가 내 뺨에 키스하는 방식When yo..
[Ubuntu] Linux terminal process without kill after logout AWS로 프로젝트를 업로드하여 실행했는데, 시간이 지나 ssh 세션이 종료될때마다 재시작을 해줘야하는 번거로움이 있었다. 그래서 세션이 지나고 터미널을 종료하더라도,서비스가 죽지 않게 하는 것을 stackoverflow에서 찾아 메모한다. $ [Command] & disown !!! 왜 그런지 이유는 모르겠지만, `& disown`으로 실행한 뒤, 바로 해당 ssh 연결을 끊어야 node server가 API 요청에 pendding 걸리지 않는다.1시간 정도 이것때문에 삽질했다.. 하..;; 그리고 AWS 서비스를 재부팅하면, mongoDB 데이터가 날아가므로 주의하자... 내 데이터 ㅠㅠ.. [출처]..
[DP] changeCoin? 예제: https://www.acmicpc.net/problem/2293 // 동전교환 // 동전 갯수, 목표금액 // 동전 종류들 // [만들고 싶은 금액 - 현재 동전의 값] => 가지수 // + // [만들고 싶은 금액] => 가지수 #include #include using namespace std; #define COIN_COUNT 100 #define SIZE 10001 int main() { int coin[COIN_COUNT]; int coinCount, target; cin >> coinCount >> target; for(int i=0; i> coin[i]; } int dp[SIZE]; memset(dp, 0, sizeof(dp)); dp[0]=1; for..
[Greedy] jewelryThief - priority_queue(heap) 예제: https://www.acmicpc.net/problem/1202 // 보석상 도둑 그리디 알고리즘 // 보석수, 가방수 // 한개의 가방에는 한개의 보석만 넣을 수 있다. // 보석 무게, 보석 값어치 // 가방들마다 넣을 수 있는 무게 // algorithm > sort // vector, queue // pair, priority_queue(heap) #include #include #include #include using namespace std; #define SIZE 300000 int main() { int jewelryCount, bagCount; cin >> jewelryCount >> bagCoun..
[SQL] JOIN? // JOIN // INNER JOIN // LEFT OUTER JOIN // RIGHT OUTER JOIN // FULL OUTER JOIN SELECT * FROM a INNER JOIN b WHERE a.b_id = b.b_id; SELECT * FROM a LEFT OUTER JOIN b where a.b_id = b.b_id; SELECT * FROM a RIGHT OUTER JOIN b WHERE a.b_id = b.b_id; SELECT * FROM a FULL OUTER JOIN b WHERE a.b_id = b.b_id;
[SQL] where & orderBy & limit // 선적되지 않은 주문 리스트에서, 주문 일자가 최근 순으로 5개를 검색하라. // limit offset, count Table: orders +-----------------+--------------+ | Field | Type | +-----------------+--------------+ | orderNumber (PK)| int | | orderDate | date | | isShipped | boolean | +-----------------+--------------+ MYSQL: SELECT * FROM orders WHERE isShipped = false ORDER BY orderDate LIMIT 5; ORACLE: SELEC..
[Math] changeProposition? **진법을 10진법으로 변환한다. 10 ~ 36 진법까지 가능하며, 알파벳 표현은 Z 까지다. 예제: https://www.acmicpc.net/problem/2745 // 진법변환 // 숫자를 나타내는 문자가 오고, 그 다음에 진법이 온다. // 10 진법으로 숫자를 변경. // input: ZZZZZ 36 // output: 60466175 #include #include using namespace std; int toNumber(char n) { char base; if(n >= '0' && n = 'A' && n > number >> proposition; int result = 0; for(int i=0; i> proposition; stack r..