목록전체 글 (788)
치춘짱베리굿나이스
Vector 는 무엇인가 #include int main(void) { std::vector vect1; // 정수형 컨테이너, 용량 0으로 초기화 std::vector vect2(5); // 문자열 컨테이너, 용량 5로 초기화 } 이전에 우리가 C에서 사용하던 배열은 고정된 길이만큼만 선언 및 할당해 놓고 그 제한 안에서 사용하는 형태의 컨테이너였다 벡터는 거기에서 한 단계 더 나아가, 원소를 추가할 때마다 이전에 할당한 용량이 부족하다면 → 메모리를 재할당하여 용량을 자동으로 늘려주는 신기한 컨테이너다 그 말인 즉슨, 처음에 벡터를 선언할 때 원소의 개수가 몇 개 들어올 지 모른다면 그냥 0개로 초기화해 주어도 원소를 추가할 때마다 알아서 메모리를 새롭게 할당한다는 뜻이다 더이상 내가 malloc 하..
Allocator 클래스 컨테이너를 하기 위해 필수로 알아야 하는 클래스이다 앞의 반복자 파트에서는 전혀 쓸 일이 없었지만 벡터나 스택 같은 컨테이너들은 기본적으로 메모리 할당을 하고 그 안에 요소들을 저장해야 하며, 내부 메서드에서 메모리 일부 할당 및 해제가 잦기 때문에 Allocator의 사용법을 반드시 익혀야 한다 뭐 하는 녀석인지 C/C++에서는 메모리 관리를 위해서 malloc, calloc, free … 와 new, delete를 사용했었다 특정 변수를 위한 메모리를 할당하고자 한다면 이 함수들이 편리하지만, 직접 컨테이너를 구현할 때 (ft_containers 처럼) 는 이야기가 달라진다 컨테이너 내부에서는 특정 메서드를 호출할 때마다 일정 영역만 메모리를 해제하거나 재할당하는 등 다양하고..
먼저 읽어보고 오세요 [Rank 5] ft_containers - std::iterator_traits [Rank 5] ft_containers - std::iterator_traits std::iterator_traits namespace ft { template struct iterator_traits { // template로 가져온 클래스에서의 :: 값은 typename으로 가져와야 한다 typedef typename Iter::difference_type difference_type; typedef typename Iter::value_type value_t blog.chichoon.com iterator_category 에서 양방향 반복자와 임의접근 반복자가 무엇인지 간단하게나마 알고 오면 조..
explicit 서론 ft_containers의 오랜 친구 cplusplus.com 과 cppreference.com 을 보다 보면? 생성자 등등에 explicit 이라는 키워드를 자주 볼 수 있다 나는 C++ 이 주 언어가 아니라서 이게 어디다 쓰는 키워드인지 전혀 몰랐는데!! 과제를 하겠다고 무작정 따라 칠 수만은 없는 노릇이다 따라서 잊어버리기 전에 적어두려고 한다 (매우 짧음 주의) 뭐하는 친구인가 explicit은 ‘명백한, 분명한’ 이라는 의미의 영단어이다 무엇을 분명하게 만들어 주는 키워드라는 것을 짐작할 수 있다 C++ 에서의 묵시적 형변환 [Rank 4] CPP 06 CPP Module 06에서 공부했던 묵시적 형변환에 관해서 잠깐 보고 가자 그렇다고 한다 요약하자면 묵시적 형변환이란? ..
std::iterator_traits namespace ft { template struct iterator_traits { // template로 가져온 클래스에서의 :: 값은 typename으로 가져와야 한다 typedef typename Iter::difference_type difference_type; typedef typename Iter::value_type value_type; typedef typename Iter::pointer pointer; typedef typename Iter::reference reference; typedef typename Iter::iterator_category iterator_category; // iterator의 특성 };뭐하는 친구인가요 반복자 특..
만들어야 하는 명령어 이건 우리 팀 (특징: 최대한 쪼끄맣게 만듦) 이 만들면서 아 이건 추가해야겠다 느낀 거고 팀마다 다를 수 있음 서버 실행 ./ircserv 포트번호를 입력하면 해당 포트에 서버가 열려야 한다 (localhost:포트번호) 비밀번호는 클라이언트 측에서 연결 시도할 때 입력할 수 있어야 한다 서버 실행 시에 입력한 번호와 클라이언트 연결 시에 입력한 번호 (PASS 참고) 가 다를 경우 접속 불가 포트번호와 비밀번호는 서버 실행 시에 인자로 받아서 인스턴스에 저장 최초 접속 시 인증 PASS PASS 서버의 비밀번호를 전송한다 PASS 명령은 반드시 맨 처음에 들어와야 하며, 비밀번호가 맞지 않으면 (검증에 실패하면) 이후의 명령들은 모두 무시된다 NICK, USER보다도 먼저 들어와..
Internet Relay Chat 드디어마참내 내가 5서클과제를 본격적으로하다니 주의사항 주의사항 설계를 잘 해두면 나중에 쉽다 블랙홀 2주밖에 안남음 살려줘~~ 사전에 공부해야 할 내용 Mandatory irssi 만들어야 하는 명령어 사용가능 함수 사용가능 함수
Server Sent Event 개요 이번에 만들게 된 서비스의 목적은 나와 맞는 팀원 구하기 였는데, 생각해보면 팀에 합류할 지 말지 결정하기도 전에 개인 연락처 (메일 등) 를 노출시켜 연락을 취하도록 하는 것은 그다지 좋지 못한 것 같았다 이 사람이 나랑 함께 할 지 말 지도 모르는데 다짜고짜 개인 메일로 연락을 보내는 것도 이상하지만, 로그인이 되지 않은 상태에서도 프로필이 노출되는 상황에서 악의적인 사용자가 스팸 메일을 보내게 된다면…? 결국 쪽지 기능을 도입하기로 하였는데, 쪽지 송신은 HTTP로 구현하되 수신은 실시간으로 알림을 띄워주고 싶어 실시간 통신 기술을 고려하게 되었고, 보편적으로 활용되는 기술로 웹소켓, 롱 폴링, SSE를 찾았다 왜 SSE를 사용하게 되었는가? 웹소켓, 롱 폴링,..