분류 전체보기
-
운영체제cs (컴퓨터 사이언스) 2023. 11. 6. 16:46
운영체제란? 컴퓨터는 크게 데이터를 처리하는 물리적 장치인 하드웨어, 작업을 지시하는 명령어로 작성된 프로그램인 소프트웨어로 나뉩니다. 운영체제는, 하드웨어를 효율적으로 사용할 수 있게 관리하는 소프트웨어입니다. 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중개자 역할을 해 주는 프로그램입니다. CPU와 GPU CPU Central Processing Unit 중앙처리장치 순차적인 작업에 활용 직렬처리에 최적하된 적은 수의 코어로 구성 GPU Graphics Processing Unit 반복적이고 비슷한 대량의 연산 수행 (픽셀로 구성된 영상, 비디오 등을 처리할 때 적합) 병렬적인 작업에 활용 병렬처리에 최적화된 수천 개의 코어로 구성 주기억장치 RAM Random Access Memory 휘발성 메모리 ..
-
프로세스와 스레드cs (컴퓨터 사이언스) 2023. 11. 6. 16:21
프로세스란? 프로세스(process)란 일반적으로 CPU에 의해 처리되는 사용자 프로그램이다. 시스템 프로그램 즉 실행중인 프로그램을 의미하며, 작업(Job), 태스크(Task)라고도 한다. 프로그램의 명령어와 정적 데이터가 자원을 할당받고 메모리에 적재되면 프로세스가 된다 프로세스의 특징 프로세스는 각각 독립된 영역(Code, Data, Stack, Heap)을 할당 받는다. 1. Code(Text) 영역 실행 명령을 포함하는 코드가 들어가는 부분이다. 프로그램을 시작할 대 컴파일한 프로그램(기계어)가 저장되어있으며, 읽기 전용영역으로 변경 시 오류가 발생한다. 2. Data 영역 프로그램이 실행될 때 생성, 프로그램이 종료되면 시스템에 반환된다. 전역변수, 정적변수, 배열, 구조체 등이 저장된다. 초..
-
09-23 Get 요청을 보낼 때 값을 같이 보내기일차 TIL 2023. 9. 20. 22:46
문제 간단한 검색기능 구현을 하던 중, Get 요청을 보내는데 keyowrd를 넣어 보내고 싶었다. 고민 Get 요청은 무언가 데이터를 보내지 않아, keyword값을 어떻게 보내야 하는 것인가 고민하게 되었다. Post 요청으로 Body에 값을 담아 보내면 되었지만, 검색 자체는 db에서 값을 가져오는 것만 하기에 Get요청이 맞는 것이라 생각하였다. body에 넣어 보낸다면 그것은 Post이지 Get은 아니였기에 고민하게 되었다. 해결 Get 요청도 엔드포인트 값으로 요청을 하기 때문에 엔드포인트에 값을 넣어 주는 방법을 찾게되었다. http://localhost:3000/api/posts/search 이러한 엔드포인드에서 keyword를 보내기위해 http://localhost:3000/api/po..
-
의존성 주입이란cs (컴퓨터 사이언스) 2023. 8. 29. 22:47
DI(Dipendency Injection, 의존성 주입) 의존성 주입(Dependency Injecdtion)이란 하나의 객체가 다른 객체에 의존성을 제공하는 기술. 코드의 결합도를 느슨하게 하고, 객체의 생성과 사용을 분리하여 코드의 가독성과 재사용성을 높여줌. 의존관계에 있을 때, 의존하는 객체에 변형이 생기거나 다른 객체를 사용해야 하는 경우가 생긴다면 관련 코드를 모두 바꿔야 함. (확장성이 적고, 결합도가 높음) 이런 의존관계를 해결하려면 인터페이스를 만들고 그것의 구현체를 만들면서 해결할 수 있음 다만 단순히 외부에서 객체를 전달받는 것으로는 의존성 주입이라고 하지 않음. 의존성 주입을 제대로 하기 위해서는 추상화된 객체를 외부에서 받도록 해야 함.
-
23-08-28 TIL DTO에서의 null 값 설정일차 TIL 2023. 8. 28. 23:00
@IsString() name?: string; 이 코드를 사용 하던 중, 수정 기능을 수정을 하게되었다. 만약 name 을 입력하지 않는다면 값의 수정을 하고 싶지 않았는데 null 값을 설정을 하지 않아 입력을 하지 않았을 경우, dto에서 막혀 코드 자체가 실행되지 않았다. 그래서 값입력이 없을때, null 값을 설정해 주는 코드로 수정하여 작업을 진행하니 성공하였다. @IsString() name?: string = null; Typescript에선 하나하나 세세하게 타입 설정을 하여 문제를 잡아 내는데, 이러한 초기 설정값을 잘 잡아주는 것이 중요한 것 같다. 그리고 수정이 필요할 때, 이렇게 바꿈으로 다른 곳에서 오류가 나지 않는 것인가를 확인하고 고민을 해봐야할 것이다.
-
브라우저의 작동방식은?cs (컴퓨터 사이언스) 2023. 8. 24. 22:21
브라우저의 구조 사용자 인터페이스 주소 표시줄, 이전/다음 버튼, 북마크 등 사용자가 활용하는 서비스들 (요청한 페이지를 보여주는 창을 제외한 나머지 부분)브라우저 엔진 사용자 인터페이스와 렌더렝 엔진 사이의 동작 제어렌더링 엔진 요청한 콘텐츠 표시(ex. html요청이 들어오면 html, css 파싱해서 화면에 표시)통신 http 요청과 같은 네트워크 호출에 사용(플랫폼의 독립적인 인터페이스로 구성되어 있음)UI 백엔드 select / input 등 기본적인 위젯을 그림. 플랫폼에서 명시하지 않은 일반적인 인터페이스로서, OS 사용자 인터페이스 체계를 사용.자바스크립트 파서 자바스크립트 코드를 해석하고 실행데이터 저장소 Cookie, Local Storage 등 local에 데이터를 저장하는 영역웹 페..
-
http 메소드cs (컴퓨터 사이언스) 2023. 8. 23. 22:12
GET: url을 기반으로 데이터를 요구하는 메서드입니다. url을 기반으로 하기 떄문에 길이 제한(2000자 미만)이 있습니다. 성공 시 HTTP 상태코드 200을 반환합니다. 캐싱이 가능합니다. url을 기반으로 요청하기 때문에 해당 요청의 파라미터가 브라우저 기록에 남습니다. url을 기반으로 요청하기 때문에 요청할 때 ASCII 문자열만을 보낼 수 있습니다. 사용자 이름, 비밀번호 등 민감한 정보를 전달할 때 사용하지 않습니다. POST: url이 아닌 HTTP message body를 통해 데이터를 전달합니다. 그렇기 때문에 길이 제한이 없습니다. 성공적으로 데이터를 생성할 경우 HTTP 상태코드 201을 반환합니다. (생성하지 않은 경우 200을 반환하기도 합니다.) 캐싱이 불가능합니다. ur..
-
23-08-23 TIL 영상 스트리밍 기초카테고리 없음 2023. 8. 23. 05:52
이번최종 과제를 진행하며 우리팀은 영상스트리밍서비스를 만들어 보기로 했다. 실시간으로 스트리밍을 하는 방법에 대해 고민을 하게 되었다. 실시간으로 방송을 내보내주기위해 처음엔 webRTC를 사용하는 방법을 택하여 찾아보았다. Web Real-Time Communication의 약자로 웹이나 앱에서 별다른 소프트웨어 없이 카메라, 마이크등을 사용하여 실시간 커뮤니케이션을 제공해주는 오픈소스이다. 간단히말해서 클라우드와 서버를 연결하는 기존의 방식이아닌 클라우드와 클라우드끼리 연결을 해주어 동영상을 송출해 주는 방식인 것이다. 하지만 우리팀은, 화상 채팅기능처럼 여러명이 같이 영상을 송출하고 받을 필요가없이 한명만이 송출을 하고 나머지인원은 송출한 영상만을 필요로 하기때문에 이방법에 조금더 적합해보이는 hl..