가우스의 덧셈 공식이란?1부터 n까지의 합을 구할때 사용하는 공식이다. 1. 첫번째 방법s = 1+2+3+....+ (n-1) + n 2. 두번째 방법s = n + (n-1) + 3 + 2 + 1 이 두방법을 합쳐보면2s = (1+n) + (2+(n-1)) + (3+(n-2)) + ... + ((n-2)+3) + ((n-1)+2) + ((n+1))즉 모든 각 쌍의 합이(n+1) + (n+1) + (n+1) + (n+1) + (n+1) + (n+1) + (n+1) + (n+1)...이 된다. 그렇다면 마지막에 있는 수를 n이라고 했을때 최종 합은s = n * (n+1) / 2 가 된다.3을 예로 들면tot = 1+2+3tot = 3+2+12tot = (1+3)(2+2)(3+1) = 4+4+4 = 12tot..
시간복잡도란?- 문제를 해결하는데 걸리는 시간과 입력의 함수 관계- 시간복잡도를 이용하는 알고리즘 분석은 알고리즘의 성능이 얼마나 효율적인지 알 수 있는 가장 일반적인 방법이다.- 어떠한 알고리즘의 로직이 얼마나 오랜시간이 걸리는지 를 나타내는데 쓰인다.- 알고리즘의 로직이 최악의 경우 걸리는 실행시간을 나타내며 이것을 보통 빅오 표기법으로 나타낸다.더보기빅오 표기법이란?• 입력 범위 n을기준으로 해서 로직이 몇번 반복되는지 나타내는 것• 가장 영향을 많이 끼치는 항의 상수인자를 빼고 나머지 항을 없앤것 빅오 표기법을 쉽게 적용할 수 있는 규칙- 덧셈, 뺼셈, 곱셈, 나눗셈과 같은 산수는 상수이다, 상수시간에 포함된다. • n의 값이 상관이 없다. 10이들어오든 100이 들어오든 1억이 들어오든 컴..
JavaScript는 다양한 환경에서 사용할수가 있습니다. 웹브라우저에서는 DOM(document object model)을 통해 웹 페이지의 요소에 접근하고 조작할 수 있습니다.이를 통해 사용자의 상호작용에 따라 화면에서 보여지는 부분을 동적으로 처리하고 웹 클라이언트 애플리케이션을 개발할수가 있습니다. 또한 서버 측에서는 Node.js를 사용하여 JavaScript를 실핼할 수 있습니다.Node.js는 비동기적이고 이벤트 기반의 서버 측 애플리케이션을 개발할 수 있도록 지원합니다.이를 통해 JavaScript로 데이터를 처리하고 서버 애플리케이션을 개발할 수 있습니다.따라서 클라이언트와 서버간에 동일한 언어를 사용하여 애플리케이션을 개발할수 있어서 개발 생산성을 높일수가 있습니다. 동적타이핑과 함수..
그리디 알고리즘이란?• Greedy를 직역하면 "욕심많은, 탐욕스러운" 이라는 뜻• 단어의 뜻처럼 선택의 갈림이있을때 최적이라고 생각되는것만을 쫓아 최종 해답에 도달하는 방식의 알고리즘.• 즉, 최적의 값을 구해야 하는 상황에서 사용 되는 근시안적인 방법론.• 항상 최적의 값을 보장하는 것이 아닌 최적의 값의 '근사한 값'을 목표로 함.• 그렇게 때문에 어느정도 최적에 근사한 값을 빠르게 도출할수 있는 장점이 있음.• 그리디 알고리즘은 근사 알고리즘으로 사용할 수 있다.• 탐욕 알고리즘을 적용할 수 있는 문제들은 지역적으로 최적이면서 전역적으로 최적인 문제들이어야 한다.더보기근시안적 방법론• 단기 목표를 중심으로한 전략적인 접근 방법을 의미.• 주로 현재의 문제를 해결하는 데 초첨을 맞추며, 장기적인 전..
정규식을 사용하다 보니 단순히 /[0-5]/ 이런것이거나 /a/ig 이런식으로 간단하게 숫자를 찾거나 a를 찾는것은 가능했다.하지만 더 자세하게 /s , /w 이런 유형들을 보니 얕게 사용해왔던거 같아 공부하기 위해 여러 방법으로 사용해 보았다.테스트는 MDN에 자료를 보면서 직접 해보았다. 일단 문자열을 하나 준비했다.const str = `Hello, I'm StartCoriny. Nice to meet you.My cell phone number is 010-1234-5678 and my home phone number is 02-1234-5678.If anything happens, please contact me here!!among the numbers 0 to 9, I like 3456 th..
CODE : RED 여러 재난 상황이나 평소 위험한 상황에 대해서도 대처가 가능한 솔루션을 제공하기 위한 서비스 CODE:RED coderedbox.com 구성원BE 5명 / 리더아키텍처 KPT 회고..최종 프로젝트가 끝났다.약 한달간의 긴 프로젝트였는데좋았던 점도 분명 많았지만가장 아쉬움이 많이 남는 프로젝트 인것 같기도 하다. 일단 가장 큰 아쉬움은 리더로서의 역할을 내가 과연 잘 했는가 이다.뭔가 좀더 아는것도 많았으면 했고 팀원이 모르는것을 물어보면 확실하게 답해주고 싶었고좀더 확실하고 깔끔하게 팀프로젝트를 운영하고 싶었다. 하지만 팀 협업 하는 과정에서 오히려 내가 새로 배웠던 협업 툴같은 새로운 것들도 많이 배웠고마음처럼 잘 활용하지를 못하니까 답답해지는 것도 있었다. 또한 새로운 기술을 ..
주어진 문제 아래처럼 구조 요청을 보내면 현재 1km안에 위치한 사람들을 확인 할수가 있다. 현재는 1km안에 있는 사람만 찾아서 알림을 보낼수가 있다. 하지만 우리는 1km ~ 2km ~ 3km ~ 를 탐색하면서 나를 도와줄수 있는 사람을 찾는걸 원한다. 또한 우리는 헬퍼가 어떻게 수락한걸 찾을수 있을 지 고민해야했다. 1. 1km안에 있는 헬퍼들에게 알림 보내기 2. 헬퍼들이 수락을 누르게 되면 디비에 정보가 쌓임 3. 정보가 쌓이지 않으면 헬퍼들이 수락을 누르지 않은 것임 4. 첫번째알림을 보낸지 3분이 지나도 수락이 쌓이지 않았는지 확인 5. 2km로 거리를 늘려 2km안에 있는 헬퍼들에게 알림을 다시보냄 6. 3분동안 DB를 확인하면서 DB에 helper_id가 null이 아닌지 확인 7. 총 ..
Stateful (상태 유지) - 클라이언트와 서버 관계에서 서버가 클라이언트의 상태를 보존하는것이다. - 보존을 하기 위한 클라이언트의 정보는 세션 또는 쿠키에 저장하여 상태를 유지한다. - Stateful 구조를 따르는 프로토콜로 TCP의 3-way handshaking과정이 있다. • 클라이언트가 서버에게 통신을 시작하려는 의도를 알리기 위해 SYN 패킷을 보낸다. • 서버는 클라이언트의 SYN패킷을 받고 통신을 수락할 준비가 되었다는 신호로 SYN-ACK패킷을 보낸다. • 클라이언트는 SYN-ACK를 받고 응답을 위해 ACK패킷을 보낸다. • 이 과정은 클라이언트와 서버간의 TCP연결 설정이며 데이터를 전송 가능하게 하는 과정이다. • 웹 브라우징, 파일전송, 원격전송과 같은 인터넷을 통한 거의 ..