충남대 73

[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] 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

[CNU SW Academy] 13일차(22.12.19)

유찬희 TA - Git 실습(2) Branch를 사용하는 이유 1. main 브랜치를 완전하게 돌아가는 코드로 유지하기 위해 2. 불필요한 충돌을 막기 위해 3. 원활한 코드 리뷰 진행을 위해 branch : 복사본을 만드는 것 각자 branch를 만들어 그 위에 commit, 자신의 코드를 올린다. pull request & merge를 통해 합쳐주는 과정을 거침 C가 또 PUSH를 하고 pullrequest & merge를 하면 필요한, 겹치지 않는 부분만 추가된다. 커밋의 구조 commit hash : 커밋의 고유한 번호, 남긴 커밋 메시지, 변경사항이 같더라도 해시는 다르다. (누가 변경했는지, 날짜 등도 초단위로 기록됨) HEAD 현재 내가 존재하는 커밋의 위치 기록은 남기고 싶은데 이전 기록을..

SW Academy 2022.12.22

[2022 동계 모각코] 목표 및 회차별 계획

목표 SW아카데미 팀프로젝트, Spring 배워보기, API 만들어 기존 프로젝트와 연동해보기 주차별 목표 1주차 : Spring 개요, 강의, 책 찾기 2주차 : 객체지향, OS, DB, 네트워크 복습, 프로그래머스 React 강의 듣기 3주차 : Spring 강의1, SW아카데미 팀프로젝트 4주차 : Spring 강의2, SW아카데미 팀프로젝트 5주차 : todoApp에 API 만들어 연결해보기 6주차 : notion 클론 프로젝트

모각코 2022.12.19

[컴파일러개론] 기말고사 정리

12주차 symbol tables semantic analysis(의미분석) - scope관련 : 변수가 선언되기 전에 쓰였나? 두 번 정의됐나? - type관련 : 변수와 assign되는 값과 타입이 맞는가? 1. 한 lexical마다 한 symbol table 2. scope들은 계층구조를 가짐 local 구조 : hash table 사용 global 구조 : n-ary tree(계층구조) -> 포인터 유지 등의 비용때문에 트리 안쓰고 stack 씀 hierarchies of local tables 제일 마지막에 접근된 것이 바로 접근된다. type checking 타입 : 값의 범위, 어떤 조건을 만족하는지 타입을 선언하고(binding), 검사(checking) static vs dymanic c..

공부 2022.12.19