목록전체보기 (253)
anothel의 지식 창고
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bFUHGE/btsLEiaolmI/0FXpkvOfVhpU7fxQGkmdv0/img.webp)
1. 개요MSVC(마이크로소프트 비주얼 C++)와 Visual Studio는 소프트웨어 개발에서 필수적인 툴체인으로, 코드 작성, 디버깅, 빌드 등의 과정을 효율적으로 관리할 수 있도록 돕는 도구이다. MSVC는 특히 C++ 개발에 강점을 가지며, Visual Studio는 이를 통합하여 다양한 언어와 플랫폼을 지원하는 개발 환경을 제공한다. 각 버전은 고유한 특징을 가지며, 컴파일러 버전을 확인해야 특정 기능의 지원 여부를 파악할 수 있다. 이를 위해 MSVC는 _MSC_VER 매크로를 제공하며, 각 버전에 대응하는 값을 통해 버전을 추적할 수 있다.이 글에서는 MSC 및 MSVC 버전의 변화와 활용법, Visual Studio 버전의 특징, 그리고 _MSC_VER 값을 체계적으로 정리하여, 독자가 컴..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/1Gg8x/btsLCINKTdL/ttv5TDCdv4A5UmktRjV4v1/img.jpg)
1. 개요네트워크와 소켓 프로그래밍은 컴퓨터와 장치 간의 데이터를 주고받기 위한 핵심 기술로, 오늘날 인터넷과 분산 시스템의 근간을 이루고 있다. 이 기술의 기원은 초기의 ARPANET과 같은 네트워크 시스템에서 시작되었으며, 현대에는 TCP/IP 프로토콜을 기반으로 발전했다.특히, 분산 환경의 확산과 클라우드 컴퓨팅의 등장으로 인해 네트워크와 소켓 프로그래밍은 더욱 중요해졌다. 네트워크는 데이터를 전송하기 위해 여러 장치를 연결하는 시스템이며, 소켓은 이러한 통신을 가능하게 하는 소프트웨어 인터페이스이다. 이를 통해 애플리케이션 간 데이터 송수신, 연결 설정, 오류 처리 등 다양한 기능을 구현할 수 있다.이 글에서는 네트워크와 소켓 프로그래밍의 개념, 구조, 작동 원리, 활용 사례, 보안, 그리고 에러..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bXPTjf/btsLDKRHLLj/UJkCRW040OkItjVqe6dsfK/img.png)
1. 개요SQLite는 서버리스(serverless) 데이터베이스 관리 시스템(DBMS)으로, 경량화된 설계와 높은 접근성을 자랑한다. 일반적인 데이터베이스 시스템과 달리 별도의 서버 프로세스 없이 동작하며, 모든 데이터가 단일 파일에 저장된다. 이러한 특징 덕분에 SQLite는 설정, 관리, 배포 등의 작업에서 복잡도를 크게 줄이며, 다양한 환경에서 활용된다. SQLite는 다양한 플랫폼에서 광범위하게 사용되며, 특히 리소스가 제한된 모바일, 임베디드 환경에서 필수적인 기술로 자리 잡고 있다. SQL 표준을 준수하면서도 빠르고 간편하게 동작하는 SQLite는 학습과 실무에서 모두 활용 가치가 높다.2. SQLite의 주요 장점배포의 간편함SQLite는 데이터베이스 설정에 추가적인 서버 인프라가 필요하지..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Mdqr7/btsLDwTHMYb/gLn7Bd3i9O4JBHgmjdnvkk/img.png)
1. 개요Oracle은 데이터를 저장, 관리, 검색하는 데 필요한 기능을 제공하는 관계형 데이터베이스 관리 시스템 (RDBMS)으로 시작했지만, 현재는 IT 업계 전반에서 다양한 소프트웨어와 클라우드 서비스를 제공하는 글로벌 기업으로 자리 잡았다. 회사는 데이터베이스뿐만 아니라 ERP, 클라우드 컴퓨팅, 하드웨어 솔루션 등 폭넓은 제품군을 보유하고 있으며, 이를 통해 대규모 데이터를 효율적으로 처리하고 다양한 비즈니스 요구를 충족한다.Oracle의 데이터베이스는 높은 신뢰성, 확장성, 고성능을 제공하며, 다중 사용자 환경에서도 안정적으로 작동한다. 특히 데이터의 무결성을 유지하고 보안을 강화하는 다양한 기능을 통해 기업의 핵심 데이터 자산을 안전하게 보호한다. 이러한 특성은 금융, 제조, 전자상거래, 공..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bvohLO/btsKEvmzMim/f4zF69G3CEtXtiTD3jj5sk/img.png)
1. 개요소프트웨어 개발과 배포 방식이 진화하면서 "도커(Docker)"라는 이름은 이제 누구나 한 번쯤 들어봤을 만큼 중요한 도구가 되었다. 도커는 소프트웨어를 일관성 있게 배포하고 실행할 수 있는 "컨테이너"라는 기술을 활용해, 다양한 환경에서도 동일한 애플리케이션이 동작하도록 돕는다. 이번 글에서는 도커가 무엇인지, 도커와 가상머신(VM)의 차이점, 도커가 해결해주는 문제점, 그리고 도커의 장단점에 대해 이야기해보려고 한다.2. 도커의 개념과 역할도커는 쉽게 말해 "소프트웨어를 통째로 담아 어디서든 실행할 수 있게 해주는 도구"라고 볼 수 있다. 애플리케이션을 개발하고 배포할 때 운영 체제나 각종 라이브러리, 종속성이 복잡하게 얽히면 다른 환경에서는 코드가 제대로 작동하지 않는 경우가 많다. 도커는..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/QnLLm/btsKvWYJYws/YeOFJdkyudAvCn4XcZs2dK/img.jpg)
1. 개요후킹(hooking)은 소프트웨어 개발 및 보안 분야에서 중요한 기술로, 특정 기능의 동작을 가로채거나 수정하는 방법이다. 이는 일반적으로 API 호출이나 함수 호출을 수정하여 프로그램의 동작을 변경하는 데 사용되며, 다양한 용도로 활용된다. 후킹은 보안 솔루션, 디버깅 도구 등에서 필수적인 기술로 자리 잡고 있다.2. 후킹의 정의후킹이란 특정 함수나 이벤트의 동작을 가로채고 그 동작을 수정하거나 다른 기능을 실행하도록 만드는 기술이다. 프로그램의 실행 흐름을 변경하는 방식으로, 후킹을 통해 개발자는 특정 기능을 확장하거나 새로운 기능을 추가할 수 있다.3. 후킹의 원리후킹은 프로그램의 실행 중 특정 지점을 가로채어 원하는 동작을 수행하도록 하는 기술이다. 보통 운영체제의 API, 메시지, 특정..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dqQMqC/btsKlWkItBm/2D3MLXCKC0mek89WafKdu1/img.png)
1. CMake 소개CMake는 소프트웨어 개발에서 프로젝트를 빌드하고 의존성을 관리하는 데 도움을 주는 툴이다. 크로스 플랫폼 지원과 자동 의존성 관리를 통해 복잡한 프로젝트에서도 일관된 빌드 환경을 유지할 수 있다. 프로젝트 빌드 규칙은 CMakeLists.txt 파일에 정의되며, 플랫폼에 맞는 빌드 시스템(Ninja, Make, Visual Studio 등)으로 변환된다.주요 장점여러 플랫폼에서 동일한 빌드 스크립트를 사용 가능, 자동 의존성 관리주요 사용 사례대규모 프로젝트의 멀티 플랫폼 빌드, 라이브러리 의존성 관리2. CMake 설치 및 환경 설정CMake는 Windows, Linux, Docker 등 다양한 플랫폼에서 설치할 수 있으며, 설치 후 PATH 설정을 통해 명령어를 사용할 수 있게..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bnm8o8/btsKmmQTXCO/GFZU6iSk5iZXjl8KNpiDwK/img.png)
1. GitLab Runner 개요GitLab Runner는 GitLab의 CI/CD 기능을 사용해 코드 빌드, 테스트, 배포를 자동화할 수 있는 도구다. 다양한 실행 환경을 지원해 여러 작업을 병렬로 처리할 수 있으며, 프로젝트 단위나 공유 Runner로 설정할 수 있어 유연하게 사용 가능하다.2. GitLab Runner 설치 방법Windows에서 설치설치 파일 다운로드 및 권한 설정공식 사이트에서 gitlab-runner-windows-amd64.exe 파일을 다운로드하고, C:\GitLab-Runner 폴더에 저장 후 이름을 gitlab-runner.exe로 변경한다.명령 프롬프트 실행: cmd를 관리자 권한으로 실행하여 다음 명령어를 입력한다> gitlab-runner.exe install> g..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/DDct9/btrrjBmceUQ/0Xm1kfOQSkexNGkvqKyfZ1/img.png)
문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다. k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다. 유저가 신고한 모든 내용을 취합하여 마지막에 한꺼번에 게시판 이용 정지를 시키면서 정지 메일을 발송합니다. 다음은 전체 유저 목록이 ["muzi", "frodo", "apeach", "neo"]이고, k = 2..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/boBxX1/btrrh5BySVu/aKOEFh4KaDp1pbp1SlkqR0/img.png)
문제 설명 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요. 제한 사항 arr은 길이 1이상, 15이하인 배열입니다. arr의 원소는 100 이하인 자연수입니다. 입출력 예 arr result [2,6,8,14] 168 [1,2,3] 6 Solution #include #include using namespace std; int gcd(const in..