반응형 목록363 Kotlin] print, println에 대해서 1. Kotlin 출력하기fun main(args:Array){ print("hi") println("hi ln") print("hi") }Kotlin은 기본적인 출력문이 print()와 println() 이 두가지 밖에 없습니다. 이 두가지의 차이점은 개행을 하느냐 마느냐 입니다. 두 함수는 다음 데이터 형식을 지원합니다. Byte 1바이트 Char 2바이트 Int 4바이트 Long 8바이트 Short 2바이트 Float 4바이트 Double 8바이트 Boolean 1바이트 CharArray 모름 Any?(그 외에것들) 모름 fun main(args:Array){ println("Byte = " + Byte.SIZE_BYTES) println("Char = " + Char.SIZE_BYTES) prin.. 2020. 7. 3. 2020-07-03] cpprestSDK 진짜 개 헬이다.... 아니..... 이거 https를 사용하려면 openssl로 개인키, 공개키 생성해서 boost에 ssl 라이브러리를 활용해서http_listener_config에 적용시켜야 하네요.... 하... 진도가 안나간다 진도가 ㅡㅡ 진짜 C++ 어렵구나..... 그래도..... 람다함수랑 바인드되어있는 코드들 계속 보니깐 눈에 조금씩 들어오긴 하네요.... 2020. 7. 3. C++] cpprestSDK(Casablanca) 1. http_listener 에 대해서.... http_listener는 task기반으로 만들어진 pplx::로 만들어졌습니다. 따라서 해당 객체를 open() 으로 실행하게 되면 쓰레드가 생성되면서 비동기적으로 실행됩니다. 또한 boost의 asio를 사용하여 만들어졌기 때문에 운영체제마다 제공하는 Thread pool을 사용하며, 사용자는 Thread에 대해 관리를 해주지 않아도 됩니다. 또한 내부적으로 중복생성을 막기위한 코드가 존재하며 예외처리를 합니다. 사용자는 support() 함수를 이용해 코드를 간편하게 만들면 됩니다. 1. http_listener 사용법해당 클래스는 namespace web::http::experimental::listener 에 정의되어 있습니다. 따라서 사용하기 편하게 하실려면 using namespace web.. 2020. 7. 2. C++] cpprestSDK 에 대한 간략한 설명. 해당 SDK는 microsoft에서 진행하고있는 오픈소스 프로젝트 Casablanca입니다. 현재 업데이트가 뜸~ 하지만 꾸준히 진행되고 있습니다. 지금부터 특징에 대해 설명해드리겠습니다. 1. cpprestSDK의 특징해당 라이브러리는 boost, openSSL 라이브러리를 커스터마이징해 좀 더 사용자가 사용하기 편리하게 제작했으며,cpp의 ppl라이브러리인 task를 기반으로 만든 pplx로 이루어져 있습니다. boost의 asio를 사용해 비동기식 입.출력을 효율적으로 가능하게 했으며 Thread pool을 사용합니다.Thread pool은 운영체제에서 제공해주는 Thread pool을 사용하게 됩니다.(Win : IOCP, Linux : epoll, Mac : kqueue) task 라이브러리의 .. 2020. 7. 2. 2020-06-30] 다시 시작.... pubg인터쉽 떨어지고 충격먹어서 일주일간 시체처럼 지냈습니다. 너무너무 공부가 하기 싫어지더군요.... 그리고 오늘 다시 시작합니다.... 힘내야지.. 2020. 6. 30. CodeUp]C++ 3017 : 정렬 기준 해당 문제는 https://codeup.kr/problem.php?id=3017 에서 풀 수 있습니다.해당 문제의 저작권은 Codeup에게 있습니다. 문제 분류 : 보기문제 설명 내 문제집에 추가 내소스1학생의 번호와 수학, 정보 점수를 가진 데이터가 있다.우리는 이를 정렬하려고 한다.정렬 기준은 수학점수가 높은 순으로 정렬하되, 수학점수가 같으면 정보점수가 높은 순, 정보점수도 같으면 번호가 빠른 순서로 정렬하려고 한다.입력첫째 줄에 학생수 n(번호:1~n)가 입력된다. (1 2020. 6. 27. PUBG] 2020 하반기 인턴 코테 결과 떨어졌습니다. 나름 잘 봤다고 생각했습니다.코딩테스트는 다시 생각해도 틀린게 없었습니다. 이론에서 차이가 많이 난 것 같았습니다. 50 ~ 75점 예상했지만 50점대였나 보네요... 탈락 메일을 여러번 받아봤었지만... 이번엔 충격이 좀 크네요.... 잘봤다고 생각했었는데.... 아니었나봅니다.... 멘탈 부여잡고 프로젝트 언능 진행해야겠네요... 2020. 6. 24. C++ 클래스와 구조체의 데이터 정렬(Data alignment) 왜 데이터 크기가 다르지? 우리는 C++를 사용할 때 class나 struct를 사용합니다. 알고계시는 분들도 있겠지만 기본적으로 맴버변수를 선언하면 자료형의 크기가 맞춰집니다. 이를 컴파일 데이터 정렬이라고 하는데, 일단 코드를 보시죠. #include class A { int num; //4byte char c1; //1byte char c2; //1byte}; int main(void) { printf("%d\n", sizeof(A)); return 0;} 6바이트가 나와야 하지만 8바이트가 나오게 됩니다. 이는 구조체(struct)도 마찬가지 입니다. 왜 이렇게 되는지 살펴보고자 합니다. 1. 프로세스의 메모리 접근 단위기본적으로 해당 코드를 실행하면 메모리로 올라가게 됩니다.그리고 프로세스는 함수가 실행될 때마다 변수의 .. 2020. 6. 24. C++ false sharing이란?(거짓 공유) 1. false sharing 이란?? false sharing은 멀티 쓰레드 환경 + CPU의 멀티 코어에서 발생됩니다. cpu 내부의 코어와 코어간의 메모리 정보가 공유되어 하드웨어 적으로 병목현상이 일어나는 것을 뜻합니다. 설명하기에 앞서 false sharing이 일어난 코드를 보겠습니다. #include #include #include long long num1 = 0; long long num2 = 0; long long num3 = 0; void fun1() { for (long long i = 0; i < 1000000000; i++) num1 += 1; } void fun2() { for (long long i = 0; i < 1000000000; i++) num2 += 1; } void.. 2020. 6. 22. 펍지 셤을 보고난 후.... 펍지 이론 시험을 보고난 후.....개념이 좀 애매하게 잡혔던 것들, 문제에서 처음 봤던 것들....그것에 대해 공부하고 글을 쓰는 중입니다. 확실히 글을 블로그에 쓰면서 하니깐 머리에 팍팍 들어오긴 하네요... 빨리 글 정리하고 프로젝트로 넘어가야 겠어요..... 진도가 안나간다~~~~~~~ 2020. 6. 22. C++] 가상 함수를 생성자에 사용하면?? 최근 기업 시험을 보는데 이런 문제가 나왔습니다. "가상함수를 생성자에 사용한다면 어떻게 되는가?" 이 문제를 봣을 때 "이건 뭐지??" 라는 생각이 먼저 들었습니다. 왜냐하면 생성자에서 가상함수를 호출할 생각 자체를 제 평생 한번도 해본적이 없기 때문입니다. 왜냐?? 사용할 이유가 없으니깐요.... 가상 함수니깐요.... 가상 함수의 의미는? overriding 이죠. 다형성이죠. 또한 순수 가상 함수는 재 정의를 해줘야하는 함수입니다. 재 정의를 해야할 함수를 생성자를 통해 호출을한다?? 아마 사용자의 실수로 호출을 하지 않을까... 싶네요....코드가 길어지면 어느 클래스에 어떤 맴버함수가 있는지 잘 기억이 안나니깐 말이죠... 그래서 저는.... 찾아보고....경험해보고.... 그래서 이 글을 쓰.. 2020. 6. 22. C++] 싱글톤(Singleton)정의 방법과 설명. C++에서 자주는 아니지만 심심치않게 싱글톤(Singleton)을 활용한 사례들을 본적이 있습니다. 굳이 사용하지 않아도 알아두면 좋은 기법입니다. 왜냐하면 클래스의 거의 모든걸 고루 담고 있기 때문입니다. static변수, private 생성자, 소멸자, 늦은 초기화 등..... 꽤 얻어갈 정보들이 있습니다. 때문에 소개하고 설명해보고자 합니다. 1. 싱글톤(Singleton)이란?싱글톤은 말 그대로 혼자라는 뜻입니다. 클래스의 생성을 딱!! 1개로 정한다는 뜻이죠. 따라서 해당 클래스의 객체는 static으로 생성이 됩니다. 물론 여러개의 변수가 하나의 클래스를 가르킬 순 있겠죠. 하지만, 그 클래스의 객체가 복사가 되면 안됩니다. 즉, 똑같은 클래스 정보가 2개 이상 늘어나면 안된다는 것이죠. 이렇.. 2020. 6. 21. C++ 에서의 OOP의 개념에 대한 설명(Abstraction, Encapsulation, Inheritance, Polymorphism) 1. OOP란?? (Object Oriented Programming) C++는 객체지향 언어 입니다. 해당 언어를 OOP라고 부르며 Object Oriented Programming의 약자입니다. 이 OOP에 대한 개념에 대해 설명해 볼까합니다. 왜냐하면..... 면접에서 물어볼 수 있는 질문이기 때문입니다. 기본적으로 C++의 OOP라 하면 다음과 같은 단어가 나옵니다. 1. Class 2. Object 3. Abstraction 4. Encapsulation 5. Inheritance 6. Polymorphism 이중에 Class와 Object는 Abstraction에 대한 내용에 포함 되므로 Abstraction, Encapsulation, Inheritance, Polymorphism에 대한 설.. 2020. 6. 21. C++] virtual function(가상 함수)에 대하여...(햇갈리는 분들~ 어여 드루와) 예전에 작성한 가상 함수글이 있습니다. 하지만 조금 미흡한것 같아 다시 작성해봅니다. 1. 일반적인 상속관계에서의 생성자, 소멸자 호출일반적으로 클래스를 정의하고 객체를 선언하면 다음과 같은 생성자, 소멸자 호출이 됩니다. 1) 생성자, 소멸자 호출 확인 코드.#include class A {private:public: A() { printf("A 생성자\n"); } ~A() { printf("A 소멸자\n"); }}; class B : public A{private:public: B() { printf("B 생성자\n"); } ~B() { printf("B 소멸자\n"); }};int main(void) { B b; return 0;} B객체를 선언했는데 상속된 부모 클래스의 A생성자와 소멸자가 호출되.. 2020. 6. 21. C++ 가상 상속(virtual inheritance) 1. 가상 상속(virtual inheritance) 이란??C++에선 다중상속을 지원합니다. JAVA는 다중상속을 막고 있지요.다중상속은 장점과 단점이 존재합니다.장점으론 객체지향의 상속성을 좀 더 유연하게 해주는 역할을 하죠.하지만 단점은 다이아몬드 상속구조를 띌 수 있으며, 이는 메모리 낭비, 성능저하로 이어질 수 있습니다. 그럼 다음 그림과 같은 형태로 상속을 진행해 보겠습니다. 그림코드 #include class A {public: A() { printf("A 생성자\n"); } ~A() { printf("A 소멸자\n"); } int A_num;}; class B : public A {public: B() { printf("B 생성자\n"); } ~B() { printf("B 소멸자\n"); .. 2020. 6. 20. 이전 1 ··· 7 8 9 10 11 12 13 ··· 25 다음 728x90 반응형