SW Academy 52

[CNU SW Academy] 22일차(22.12.30)

김기일교수님 - 네트워크 IP주소 8바이트짜리 필드 4개 => 32비트의 논리주소 서브네팅 IP 프로토콜 검사합(Checksum) 송신자가 전송하는 패킷에 검사합을 함께 보내면 수신자는 패킷과 함께 검사합을 계산해 조건을 만족하면 패킷을 받아들이고 그렇지 않으면 패킷을 폐기한다. ICMP IPv6 UDP TCP와 스트림 전송 정확하게 데이터가 도착했는지 여부를 확인하기 위해 사용되는 절차 segment : 두 호스트 간의 TCP 프로토콜 사이에서의 전송단위 신뢰성 전송을 위해 사용자 데이터 세그먼트와 함께 이에 대한 확인 응답인 ACK 세그먼트를 사용 TCP 연결 과정 1. SYN 2. 반대편의 SYN, ACK 3. 다음의 SYNC, ACK TCP 혼잡제어 수신자가 받을 수 있는 양을 고려하는 것도 중요..

SW Academy 2023.01.01

[CNU SW Academy] 21일차(22.12.29)

문현수박사님 - HTTP server using Socket HTTP(HyperText Transfer Protocol IP와 Port로 Process를 구분(TCP/IP) 왼쪽이 요청, 오른쪽이 응답 GET은 서버에서 데이터를 요청하는 것 POST/PUT은 클라이언트가 서버로 데이터를 업로드 하는 것 200 OK : 요청한 자원을 내가 가지고 있다. 403 Forbidden 404 Not Found TCP 통신 순서 1. bind 2. listen 3. accept 4. recv-send 5. close 프로그래머스 - 프론트엔드 미니 데브코스 prommise, async await 복습 fetch API 써보기1 컴포넌트 구조 innerHTML을 너무 자주 사용하면 성능에 문제가 생길 수도 있긴 하지..

SW Academy 2023.01.01

[CNU SW Academy] 20일차(22.12.28)

프로그래머스 - 프론트엔드 미니 데브코스 async, await promise는 코드의 흐름과 실행 순서가 일치하지 않는다는 게 가독성을 어렵게 만듦 async, await를 이용하여 비동기 코드도 동기 코드처럼 보이게 짤 수 있다. (실행은 비동기로) async function async 키워드가 붙은 함수는 실행 결과를 Promise로 감싼다. fetch - 비동기 http 요청을 좀 더 쓰기 편하게 해주는 API - XMLHTTPRequest를 대체한다. - Promise 기반으로 동작한다. response body를 json으로 바꿔주어야 함 혹은 text()로 불러와서 조회 시 JSON.parse() blob은 이미지 처리하는 데 쓸 수 있다. fetch api는 HTTP error가 발생하더라..

SW Academy 2023.01.01

[CNU SW Academy] 19일차(22.12.27)

프로그래머스 - 프론트엔드 미니 데브코스 api는 호출 시 api.js를 따로 만들어서 한 곳에 모아놓자 먼저 dummy data를 만들어 넣어보고, 렌더링이 잘 되면 이후에 API를 연결해보자 항상 방어코드 작성 고려하기 this.state.map(({id, text}) => ` { //promise 내부에서 비동기 상황이 종료될 때, resolve 함수 호출 //promise 내부에서 오류 상황일 때, reject 함수 호출 }) then을 이용해 비동기 작업 이후 실행할 작업을 지정한다. 작업이 실패했을 경우, .catch로 잡을 수 있다. 성공과 실패여부와 상관없이 호출해야 하는 코드는 finally에서 처 Promise의 내장 함수들 Promise.all(iterable) : 여러 promise..

SW Academy 2023.01.01

[CNU SW Academy] 18일차(22.12.26)

프로그래머스 - 프론트엔드 미니 데브코스 명령형 프로그래밍 const $button1 = document.createElement('button') $button1.textContent = 'Button1' const $button2 = document.createElement('button') $button2.textContent = 'Button2' const $button3 = document.createElement('button') $button3.textContent = 'Button3' const $main = document.querySelector('#app') $main.appendChild($button1) $main.appendChild($button2) $main.appendChi..

SW Academy 2022.12.26

[CNU SW Academy] 16일차(22.12.22)

운영체제 - 김종익교수님 Process Synchronization Producer - Consumer Race condition Solution to critical section problem 1. mutual exclusion(상호배제) 2. Progress 3. Bounded waiting critical section handling in OS 1. Preemptive 2. Non-preemptive mutex locks busy waiting 문제 발생 semaphore usage busy waiting을 해결하기 위해 block, wakeup 메소드를 활용 deadlock : 2개 혹은 이상의 프로세스가 하나의 자원을 들고 다른 자원을 기다릴 때 발생 starvation readers - w..

SW Academy 2022.12.25

[CNU SW Academy] 17일차(22.12.23)

하석재 강사님 객체지향의 포인트 - 캡슐화(디버깅의 해결책) / 상속(코드재활용) 컴포넌트 - 코드 없이 재활용 - MS COM / Sun(오라클) JavaBeans JavaBeans를 잘 알아야해요 컴파일이 되면 재활용이 가능한 구조가 된다. 컴포넌트의 제약 깔아야한다. 안깔고 원격에서 호출 안되나? => 분산 컴포넌트 등장 분산컴포넌트기술 - 원격호출 / 오브젝트(컴포넌트) 다운로드 - Directory Service - MS DCOM(Distributed COM) / Java EJB(Enterprise JavaBeans) -> Spring Bean DI(Dependency Injection) - 객체지향 개념이 발달해서 DI가 나옴 - Angular(Front-end) / Spring(Back-en..

SW Academy 2022.12.23

[CNU SW Academy] 코딩테스트 가이드

문제를 풀 때 중요한 것 1. 여러 풀이 방법이 있다는 것을 기억하자. 2. 예외가 있을 수 있다는 것을 기억하자. 3. 내가 푼 답이 베스트인지 의심하자. 4. 문제를 풀었다면 시행착오를 모두 기록하자.(오답노트) 5. 다른 사람의 코드를 많이 보자. 6. 쉽게 포기하지 말자.(3시간 이상 붙잡고 풀어보기) => 도저히 모르겠다면 답을 보는 것도 좋은 방법 알고리즘 마스터가 될 필요는 없다. 회사는 업무 수행의 기초 능력을 확인하고 싶은 것 대부분의 코딩 테스트는 대회용 알고리즘을 출제하지 않는다. => 문제 해결 능력을 기르는 것이 더 중요하다. 어디까지 공부할지 정하자. 성향 파악하기 1. 미리 생각하고 의사 코드를 작성해야 더 잘 풀리는 사람 2. 일단 코드를 작성하면서 생각해야 더 잘 풀리는 사..

SW Academy 2022.12.23

[CNU SW Academy] 15일차(22.12.21)

운영체제 - 김종익교수님 프로세스 실행 중인 프로그램 - text section : 코드가 있는 부분 - Stack : temporary data를 담고 있다. 함수 파라미터, return주소, 지역변수 - Data section : 프로그램의 시작부터 끝까지 유지되는 전역변수 - 초기화 된 데이터 - 초기화 되지 않은 데이터 - Heap : 실행 중에 동적으로 메모리 할당(new, malloc) Program Counter 다음 수행할 프로그램 코드의 위치를 가리키는 register value 현재 작업하고 있는 정보들은 CPU register에 다 들어있다. 프로세스의 상태 1. new 2. running 3. waiting 4. ready 5. terminated PCB(Process Control..

SW Academy 2022.12.23

[CNU SW Academy] 14일차(22.12.20)

김종익교수님 - OS 사용자와 컴퓨터 HW 중간에 끼어 있는 프로그램 사용자가 만든 프로그램을 실행시켜주고, 어떤 문제를 프로그램을 통해 해결하는 것을 좀 더 쉽게 해 주고, HW를 효율적으로 사용할 수 있게 해 줌 kernal 컴퓨터가 실행되면 계속해서 실행되는 부분 운영체제의 가장 핵심 파트 interrupt 실행되던 정보를 어딘가에 저장하고, 처리하고 돌아왔을 때 다시 실행할 수 있도록 해야 한다. Interrupt Handling 현재 CPU의 상태들을 저장 interrupt vector가 존재 Storage Structure - main memory CPU가 직접 접근 가능한 유일한 휘발성 메모리 - secondary storage 비휘발성 메모리 - hard disks : track, sect..

SW Academy 2022.12.23