전체 글

IT, 프로그래밍에 관련된 내용을 위주로 포스팅하는 블로그입니다 :) 테크나 커리어에 관련된 이야기를 좋아합니다. 관련된 내용은 이메일로 연락주세요. (njsung1217@gmail.com)
개인/라이프로그

[결혼준비] 웨딩홀 결정하기!

작년 중순부터 결혼을 준비하면서 가장 신경쓰고, 고민했던건 다름아니라 웨딩홀을 결정하는 문제였다. 양가 부모님이 모두 사업을 하시기도하고, 지방에 사시는 친인척분들이 많아서 교통이 좋은 곳과 넓고 편한 주차가 가능한 곳으로 결정하는 것이 최우선 순위였다. 많은 사람들이 웨딩홀을 결정하는 몇가지 기준이 있겠지만, 우리는 아래 순위에 맞춰서 웨딩홀을 검색했다. 교통(기차 혹은 지하철로 편하게 이동이 가능한 곳이면서 강북권) 주차(자차로 오시기에도 불편함없이 주차가 가능한 곳) 단독 홀(하객분들이 편하게 계셨으면 했음) 식사(뷔페식으로 대부분 하객들이 맛있게 드실 수 있었으면 했음) 우리는 해당 조건에 맞춰서 가장 처음 미팅했던 루이비스 중구(다산홀)로 바로 결정을했다! 교통 루이비스는 첫 인상이 굉장히 좋았..

개발/Rust

[Rust] Box와 Rc의 차이점

Box heap에 할당된 값에 대한 소유권을 가진다는 뜻 일반적으로 heap 메모리에서 할당된 데이터를 관리하기 위해 사용됨 C++의 'unique_ptr'와 유사하며, 스택에 할당되는 대신 heap 메모리에 할당됨 Rc reference counting을 의미하며, 여러 개의 소유권이 필요한 경우 사용됨 여러 개의 소유권을 가질 수 있으며, 이를 통해 동일한 데이터에 대한 여러 개의 참조를 추적할 수 있음 C++의 'shared_ptr'와 유사하며, 여러 개의 소유권을 추적하여 해당 데이터가 더 이상 필요하지 않을 때 자동으로 제거됨 공통점 메모리 관리에 큰 도움을 줄 뿐만 아니라 코드의 안전성을 높이는 데 도움이 됨 예제 코드 use std::rc::Rc; fn box_value() { // Box로..

개발/C++

3. c# string을 c++ DLL로 전달하는 방법

2023.01.31 - [개발/C++] - 1. VS 2019에서 C++ 프로젝트를 DLL로 빌드하기 2023.01.31 - [개발/C++] - 2. C++ DLL을 C#에서 이용하기 방법1. std::wstring 사용 C++ DLL 코드 #include extern "C" __declspec(dllexport) void FunctionName(const std::wstring& inputString) { std::wcout

개발/C++

2. C++ DLL을 C#에서 이용하기

2023.01.31 - [개발/C++] - 1. VS 2019에서 C++ 프로젝트를 DLL로 빌드하기 1. C++ DLL을 C#에서 사용하는 간단한 예제 C++ DLL(CPP.dll) #include extern "C" __declspec(dllexport) int AddNumbers(int a, int b) { return a + b; } C# using System; using System.Runtime.InteropServices;//import하지 않으면 DLLImport 사용 불가! namespace CSharpApp { class Program { [DllImport("CPP.dll")] public static extern int AddNumbers(int a, int b); static v..

개발/C++

1. VS 2019에서 C++ 프로젝트를 DLL로 빌드하기

방법 1 : 프로젝트 세팅부터 DLL로 선택해서 빌드하기 Visual Studio 2019에서 새 프로젝트를 생성 "Win32 Console Application" 프로젝트 템플릿을 선택 "Application Settings" 단계에서 "DLL"을 선택 프로젝트 속성에서 "C/C++" > "Code Generation" > "Runtime Library"를 "Multi-threaded DLL (/MD)"로 설정 프로젝트에 필요한 함수를 작성 "Build" > "Build Solution"을 선택하여 프로젝트를 빌드 빌드 결과인 dll 파일은 프로젝트 폴더의 "Debug" 또는 "Release" 폴더에 생성되는 것 확인 방법 2 : 이미 개발한 프로젝트를 DLL로 선택해서 빌드하기 프로젝트 속성 -> 일..

개발/C++

C++ 람다 함수 정리

❗이 글은 ChatGPT와의 질답을 통해 작성되었습니다. 개요 C++의 lambda는 익명 함수를 생성하는 방법 중 하나입니다. lambda 표현식은 함수의 헤더와 바디를 한 줄에 작성할 수 있어 간결한 코드를 작성할 수 있습니다. lambda 표현식은 기본 형식이 ->리턴타입 {함수 본문} 입니다. 이때, 인자리스트나 리턴타입은 생략 가능합니다. C++의 lambda 함수의 []는 capture list라고 불리며, 함수 바디 내부에서 참조할 수 있는 외부 변수를 정의합니다. [] : 아무런 변수도 캡처하지 않습니다. [x, &y]: x라는 이름의 변수를 값으로 캡처하고 y라는 이름의 변수를 참조로 캡처합니다. [&] : 외부 모든 변수를 참조로 캡처합니다. [=]: 외부 모든 변수를 값으로 캡처합니다..

개발/C++

C++20 신규 기능 정리

❗이 글은 ChatGPT와의 질답을 통해 작성되었습니다. C++ 20은 여러 가지 새로운 기능을 추가하였습니다. 그 중에서는 다음과 같은 기능들이 있습니다: Concepts: 템플릿 인수의 유효성을 컴파일 타임에 검사할 수 있는 기능. Concepts는 템플릿 함수나 템플릿 클래스의 인수들이 원하는 조건(concept)을 만족하는지 컴파일 타임에 검사할 수 있는 기능입니다. 이를 통해서 템플릿 함수나 클래스를 사용할 때 오류를 최대한 빨리 확인 할 수 있게 됩니다. 예를 들어, 아래의 함수 add()는 두 개의 값을 더하는 함수 입니다. template auto add(T a, U b) { return a + b; } 이 함수를 사용할 때 T, U 타입은 어떤 타입이든 가능하지만, 타입 T는 덧셈 연산이..

개인/라이프로그

3D 그래픽스 개발자의 2022년 회고

더보기 2021년 회고 글 : 바로가기 1. 이직 작년 하반기부터 준비한 이직을 올해 2월 마무리지었다. 유저에게 딜리버리가 가능한 서비스를 개발/운영하고있는 회사를 최우선적으로 고려했고 좋은 회사에 랜딩하게 되었다. 이직하고 10개월간 회사가 매출도 꽤 발생했고, 서비스의 퀄리티가 꽤나 상승하게 되었는데 이 과정에 조금이나마 도움이된 것 같아서 기분이 좋았다. 그리고 하반기부터는 팀장으로 매니지먼트를 겸하게되었는데 팀원들과 합을 맞춰가는 과정에서 개인적으로 많이 성장했음을 느끼고있다. 마이너 도메인(건축)으로 이직을 했다보니 서비스와 코드의 히스토리를 이해하기에 많은 어려움이 있었다. 이전 직장은 그나마 석박때 연구한 부분과 어느정도 일치했지만, 건축은 정말 새로 배우는 분야였다. 그렇기에 도메인 이해..

njsung
NJSUNG BLOG