본문 바로가기

부스트캠프/챌린지

(11)
[부스트캠프 웹모바일 9기] 챌린지 Day18 학습정리 TCP와 UDP둘 다 인터넷 프로토콜에서 사용하는 주요 전송 계층 프로토콜이다.  특징TCP(Transmission Control Protocol)UDP(User Datagram Protocol)연결 방식연결 지향비연결형신뢰성신뢰성 보장(재전송, 오류 검출 및 수정)신뢰성 미보장흐름 및 혼잡 제어OX패킷 순서 보장OX오버헤드높다(헤더 크기 및 처리 비용 큼)낮다(헤더 크기 및 처리 비용 작음) 속도느리다빠르다사용 사례HTTP/HTTPS, FTP, SMTP, 이메일실시간 스트리밍, VoIP, 온라인 게임패킷 전송 방식일대일 통신일대일, 일대다(브로드캐스트 / 멀티캐스트) TCP 통신에서는 Broadcast를 할 수 있을까? 결론부터 말하자면 불가능하다.TCP 통신에서 브로드캐스트가 불가능한 이유는 TCP의..
[부스트캠프 웹모바일 9기] 챌린지 Day16 학습정리 트랜잭션데이터베이스 관리 시스템(DBMS)에서 하나의 논리적 작업 단위를 구성하는 일련의 연산들트랜잭션은 ACID 속성(Atomicity, Consistency, Isolation, Durability)을 만족해야 한다. Atomicity(원자성)트랜잭션 내의 모든 연산이 완벽하게 수행되거나, 전혀 수행되지 않은 것처럼 처리되어야 한다.모든 작업이 성공적으로 완료되면 그 결과가 데이터베이스에 반영되야 한다.하나라도 실패하면 모든 변경이 취소된다.이를 통해 데이터의 일관성과 무결성이 보장된다. 예시 : 은행 계좌 이체 위 상황에서 트랜잭션은 1, 2번을 완벽하게 수행하거나, 전혀 수행하지 말아야 한다.1번만 실행하거나, 2번을 실행하는 경우는 없어야 한다.이러한 개념이 바로 Atomicity(원자성)   ..
[부스트캠프 웹모바일 9기] 챌린지 3주 차 회고 1주 차 회고 : https://godsaeng-salgi.tistory.com/39 [부스트캠프 웹모바일 9기] 챌린지 1주 차 회고⏳ 부스트캠프를 지원하기까지....  안녕하세요! 저는 곧 대학교 졸업을 앞두고 부스트캠프 웹 풀스택 9기를 참여하게 된 최재영입니다! 저는 다른 동기들에 비해 애매한 학점, 애매한 프로젝godsaeng-salgi.tistory.com 2주 차 회고 : https://godsaeng-salgi.tistory.com/44  [부스트캠프 웹모바일 9기] 챌린지 2주 차 회고1주 차 회고 : https://godsaeng-salgi.tistory.com/39 [부스트캠프 웹모바일 9기] 챌린지 1주 차 회고⏳ 부스트캠프를 지원하기까지....  안녕하세요! 저는 곧 대학교 졸업을..
[부스트캠프 웹모바일 9기] 챌린지 Day13 학습정리 깃 Object깃 Object 종류에는 크게 3가지가 있다. 1. Blob2. Tree3. Commit  Blob파일의 실제 내용이 저장된다.파일 이름이나 다른 메타데이터는 저장하지 않는다.파일 내용에 따라 해시를 생성한다.일종의 불변 객체SHA1 체크섬을 이용해서 파일 내용을 식별할 수 있다.   TreeBlob 또는 다른 Tree 객체의 해시값이 저장된다.Git에서 일종의 스냅샷 역할을 한다.   Commit해당 커밋이 가리키는 트리 객체의 해시값과 이전 커밋을 가리키는 커밋 객체의 해시값이 저장된다.사실상 Git에서 가장 중요한 객체커밋 메세지도 포함한다.    Git add, commit 시, Git Object의 변화Git add1. 파일이 생성된다.   2. Git add를 한다.git add..
[부스트캠프 웹모바일 9기] 챌린지 Day11 학습정리 비동기 처리 및 이벤트 기반 프로그래밍비동기 처리 : 요청한 작업이 완료될 때까지 기다리지 않고, 다른 작업을 계속 진행할 수 있도록 하는 프로그래밍 기법JavaScript에서는 callback, Promise, async/await 등을 통해 비동기 작업을 처리할 수 있다.이러한 비동기 작업은 주로 이벤트 기반 시스템에서 활용된다.이벤트 큐와 이벤트 핸들러는 이벤트를 관리하고 처리하는 핵심 요소이다.    Promise비동기 작업의 성공 또는 실패를 나타내는 객체Promise는 "then", "catch", "finally" 메소드를 통해 비동기 작업의 결과를 처리할 수 있다.function divide(a, b) { return new Promise((resolve, reject) => { i..
[부스트캠프 웹모바일 9기] 챌린지 2주 차 회고 1주 차 회고 : https://godsaeng-salgi.tistory.com/39 [부스트캠프 웹모바일 9기] 챌린지 1주 차 회고⏳ 부스트캠프를 지원하기까지....  안녕하세요! 저는 곧 대학교 졸업을 앞두고 부스트캠프 웹 풀스택 9기를 참여하게 된 최재영입니다! 저는 다른 동기들에 비해 애매한 학점, 애매한 프로젝godsaeng-salgi.tistory.com 2주 차 타임라인 사실 2주 차 회고는 3주 차 회고보다 늦게 작성한다.1주 차 목요일에 몸살이 굉장히 심하게 오고, 2주 차에도 다시 한 번 몸살이 크게 왔다.에어컨을 계속 틀기도 하고, 내 몸 상태를 거의 생각하지 않고 밤을 새서 그런 것 같다.정말 웃기지만 지금이라도 많이 늦은 회고를 작성하려고 한다.    Day 6 사실 저번 주까지..
[부스트캠프 웹모바일 9기] 챌린지 Day 9 학습 정리 Observer 패턴ObserverSubject를 관찰하고, 상태 변화를 감지하여 특정 동작을 수행하는 객체이다.Subject에 등록하여 변화에 대한 알림을 받는다.Subject속성을 가지고 있는 객체상태가 바뀌면 Observer로 이벤트를 전달한다.Observer 패턴의 단점Subject에서 Observer 배열을 직접 관리해야 한다.즉, 관찰자와 피관찰자가 직접적으로 참조된다.Observer가 많이 등록된다면, 성능 저하가 발생할 수 있다.잘못된 구현으로 순환 참조가 발생할 수 있다.     Publisher / Subscriber 패턴Publisher 메세지를 생성하고 특정 주제를 발행하는 객체Subscriber특정 주제를 구독하여 Publisher가 발행한 메세지를 수신하고 처리하는 객체Broke..
[부스트캠프 웹모바일 9기] 챌린지 Day 8 학습 정리 고차 함수 - map, filter, reduce1. map기능 : 모든 요소에 대해 주어진 함수를 적용하여 새로운 리스트를 생성한다.const list = [1, 2, 3, 4]console.log(list.map(x => x * 2)) // [2, 4, 6, 8] 2. filter기능 : 주어진 조건을 만족하는 요소만을 선택하여 새로운 리스트를 생성한다.const list = [1, 2, 3, 4]console.log(list.filter(x => x % 2 === 0)) // [2, 4] 3. reduce기능 : 리스트의 모든 요소를 주어진 함수로 누적하여 단일 결과값을 생성한다.const list = [1, 2, 3, 4]console.log(list.reduce((acc, cur) => acc ..