728x90

TIL 259

24.11.29 C++

C++복사 생성자복사 생성자는 호출되는 시점이 다른 일반 생서어자와 차이가 있기 때문에 이름이 붙었다.멤버 대 멤버의 복사에 사용되는 원본을 변경시키는 것은 복사의 개념을 무너뜨리는 행위가 되니, 키워드 const를 삽입해서 이러한 실수를 막아 놓는 것이 좋다.복사 생성자를 정의하지 않으면, 멤버 대 멤버의 복사를 진행하는 디폴트 복사 생성자가 자동으로 삽입된다.디폴트 복사 생성자를 막기 위해서는 복사 생성자의 묵시적 호출을 허용하지 않으면 된다. 이러한 목적으로 explicit이 사용된다. explicit을 사용하면 묵시적 변환이 발생하지 않아서 대입 연산자를 이용한 객체의 생성 및 초기화가 불가능해진다.전달인자가 하나인 생성자가 있다면, 이 역시 묵시적 변환이 발생한다.복사 생성자의 매개변수는 참조형..

24.11.28 면접 후기

아아아아아 진짜 머하냐 나기술 면접 너무 개같이 봤다. 오래돠어 잘 가억나지 않는 질문도 있었지만 최근에 공부하고 기초적인 질문도 답하지못해서 그래서 더 뼈아프다. 하 아아아아아아아ㅏ 진짜 개 바보 멍청이 이걸 어떻하지 아니 아는건데ㅔㅔㅔㅔ경험을 쌓았다고 생각하자.. 아 근데 진짜 알았는데 아아아아아아아 ㅋㅋ.. ㅋ.. 나같아도 나처럼 답하면 얘는 뭐지 싶겠다. 하.. 면접Struct그래 최근에 했던 구조체.하.. 장단점을 여쭤보셨는데 잘대답하지 못했다. 이게 프로그래머...?이 부분에서 아마 많은 실망을 하셨을것같다.지금은 너무 쓰라리지만 그래도 내 지식 어디에 구멍이 났고 어느부분을 다시 채워여하는지 알게됐으니 그런 부분은 좋다. 물론 지금은 많이 아프다.작고 단순한 데이터에 적합하다는것은 알았지만..

24.11.27 서버, AWS

서버서버리스 아키텍처서버리스(Serverless) 아키텍처는 애플리케이션 개발자가 서버를 직접 관리하지 않고, 클라우드 제공자가 백엔드 인프라를 동적으로 관리하는 아키텍처를 말한다. 개발자는 애플리케이션의 로직과 기능에만 집중하고, 서버 프로비저닝, 유지보수, 확장 등은 클라우드 제공자가 처리한다.특징No Server Management(서버 관리 불필요)개발자는 물리적 서버, 가상 서버, 운영체제 관리에 신경 쓰지 않는다.클라우드 제공자가 서버를 자동으로 관리한다.이벤트 기반 실행서버리스 함수(예: AWS Lambda)는 특정 이벤트가 발생할 때만 실행된다.사용자가 요청을 보내거나 특정 조건이 충족될 때만 리소스를 사용한다.자동 확장트래픽에 따라 클라우드 제공자가 애플리케이션을 자동으로 확장하거나 축소..

24.11.26 C++, 책

C++클래스(Class)키워드 struct를 대신해서 class를 사용하면, 구조체가 아닌 클래스가 된다.클래스는 기본적으로(별도의 선언을 하지 않으면) 클래스 내에 선언된 변수는 클래스 내에 선언된 함수에서만 접근이 가능하다.클래스는 정의를 하는 과정에서 각각의 변수 및 함수의 접근 허용범위를 별도로 선언해야 한다. 이것이 struct를 이용해서 정의하는 구조체와 class를 이용해서 정의하는 클래스의 차이점이다.접근제어 지시자(접근제어 레이블)C++의 접근제어 지시자는 다음과 같이 총 세가지가 존재한다.public : 어디서든 접근허용protected : 상속관계에 놓여있을 때, 유도 클래스에서의 접근 허용private : 클래스 내(클래스 내에 정의된 함수)에서만 접근허용접근제어 지시자가 선언되면,..

24.11.25 CS, C++

책이것이 컴퓨터 과학이다.Chapter 2. 운영체제운영체제의 핵심 기능을 담당하는 부분을 커널(kernel)이라고 한다.운영체제에는 크게 2가지의 핵심 기능이 있다.자원 할당 및 관리프로세스 및 스레드 관리운영체제의 역할자원(resource)이란 프로그램 실행에 마땅히 필요한 요소를 의미한다. 실행에 필요한 데이터를 자원이라고 하기도 하고, 실행에 필요한 부품을 자원이라고 하기도 한다.운영체제는 사용자가 실행하는 응용 프로그램을 대신하여 CPU, 메모리, 보조기억장치 등의 컴퓨터 부품에 접근하고, 각각의 부품들이 효율적으로 사용되도록 관리한다.응용 프로그램이 컴퓨터 부품들을 효율적으로 할당받아 문제 없이 실행할 수 있도록 응용 프로그램에게 자원을 할당한다.프로세스와 스레드프로세스의 유형으로는 사용자가 ..

24.11.22 JavaScript, C++

JavaScriptasync/await비동기 코드를 더 읽기 쉽게 작성할 수 있도록 도와주는 기능이다. Promise 기반의 비동기 작업을 동기적인 코드 흐름처럼 보이게 하여, 코드의 가독성과 유지보수성을 크게 향상 시킨다.비동기 작업을 처리할 때 콜백 함수나 Promise 체이닝을 사용하던 방식을 async/await를 사용해 더욱 직관적으로 작성할 수 있다.기본 개념async함수 앞에 async 키워드를 붙이면 그 함수는 Promise를 반환하는 비동기 함수가 된다. async 함수는 내부에 await 키워드를 사용할 수 있다.await비동기 작업이 완료될 때까지 기다리는 역할을 한다. await는 Promise가 해결될 때까지 함수의 실행을 일시적으로 멈추고, 결과값을 반환한다. await 키워드는..

24.11.21 Node.js, Unity

Node.jsPromise비동기 작업을 처리하기 위해 사용되는 객체이다. 비동기 코드를 더 이해하기 쉽게 작성하고, 콜백 지옥을 피하기 위해 도입되었다.Promise란?자바스크립트에서 비동기 작업의 결과를 나타내는 객체로, 결과값을 아직 사용 불가능한 시점과 결과가 사용 가능한 시점을 쉽게 관리할 수 있게 한다. Promise는 아래와 같은 세 가지 상태를 가질 수 있다.Pending : 초기 상태로, 비동기 작업이 아직 완료되지 않은 상태이다.Fulfilled : 작업이 성공적으로 완료된 상태이며, 결과 값(value)가 존재한다.Rejected : 작업이 실패한 상태이며, 오류(reason)가 존재한다.Promise는 상태가 변경되면 해당 상태로 연결된 처리기(handler)가 호출된다.Promise..

24.11.20 CS

객체의 결합도 & 응집도소프트웨어의 모듈 독립성프로그래밍이란 문제를 정의하고 하나씩 해결해나가는 과정을 말한다. 문제가 복잡하고 큰 문제라면, 일반적으로 문제를 작은 부분으로 쪼개어서 하나씩 풀어나가게 될 것인데, 이 떄 문제를 작은 부분으로 쪼개나가는 것을 모듈화라고 한다.모듈은 소프트웨어를 각 기능별로 나누어진 소스 단위를 말한다. 독립적으로 컴파일 가능한 프로그램 혹은 하나의 함수나 클래스도 모듈이 된다.보통 좋은 소프트웨어 일수록 모듈의 독립성이 높다고 한다. 좋은 모듈화는 목적에 맞는 기능만으로 모듈을 나누게 되는데, 각각의 모듈은 주어진 기능만을 독립적으로 수행하기 때문에 재사용성이 높고 코드의 이해/수정이 용이하기 때문이다. 예를 들어 해당 모듈을 수정하더라도 다른 모듈에 끼치는 영향이 적게..

24.11.19 CS

CSRB Tree특징이진 탐색 트리의 한 종류로, 노드에 색상을 추가하여 균형을 유지하는 자기 균형 이진 탐색 트리이다.레드-블랙 트리는 다음 5가지 성질을 만족해야 한다.노드는 빨간색 또는 검은색이다.루트는 항상 검은색이다.모든 리프(Leaf, NIL노드)는 검은색이다.리프 노드는 데이터를 가지지 않는 NIL 노드로 표현한다.빨간색 노드의 자식 노드는 모두 검은색이다.빨간색 노드는 연속해서 나타날 수 없다.루트에서 각 리프 노드까지 가는 경로에는 항상 같은 개수의 검은색 노드가 있다.이 값을 Black Height라고 한다.장점삽입/삭제/탐색이 항상 O(log n)으로 효율적이다.이진 탐색 트리의 단점인 편향된 트리를 방지한다.구현이 표준화되어 있고, 많은 라이브러리에서 사용된다.단점구현이 복잡하다.특..

24.11.18 CS

FTP/ SFTPFTP(File Transfer Protocol)파일을 전송하는 통신 규약이다.원격에 있는 서버에 파일을 주고 받을 때 사용하는 인터넷 통신 규약인데 내 컴퓨터에 있는 파일을 계정을 제공하는 서버로 파일을 서로 이동시키는 것을 말한다. 여기에 보안이 추가된 SFTP가 있다.기본 포트는 21이지만 바꿔서 사용하는 경우도 있다. 예전에는 사용했지만 지금은 보안이 좋지 않아서 실무에서는 사용하지 않는다.SFTPssh의 파일 전송 버전이라고 생각하면 된다.일반적인 FTP와 달리 PC와 서버간의 데이터 전송을 암호화하기 때문에 해킹이나 보안상의 문제점을 방지, 안전한 호스팅 서비스를 이용할 수 있다.텔넷(Telecommunication network)인터넷을 통하여 원격지의 호스트 컴퓨터에 접속할..

728x90