목록2022/02 (30)
anothel의 지식 창고

시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 0.25 초 (추가 시간 없음) 128 MB 146939 41099 32063 30.981% 문제 다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다. int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); } } fibonacci(3)을 호출하면 다음과 같은 일이 일어난다. fibonacci(3)은 fibonacci(2)와 fibonacci(1) (첫 번째 호출)을 호출한다. fibonacci(2)는 fibonacci(1) (두..

시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 142436 29400 23319 21.452% 문제 조규현과 백승환은 터렛에 근무하는 직원이다. 하지만 워낙 존재감이 없어서 인구수는 차지하지 않는다. 다음은 조규현과 백승환의 사진이다. 이석원은 조규현과 백승환에게 상대편 마린(류재명)의 위치를 계산하라는 명령을 내렸다. 조규현과 백승환은 각각 자신의 터렛 위치에서 현재 적까지의 거리를 계산했다. 조규현의 좌표 (x1, y1)와 백승환의 좌표 (x2, y2)가 주어지고, 조규현이 계산한 류재명과의 거리 r1과 백승환이 계산한 류재명과의 거리 r2가 주어졌을 때, 류재명이 있을 수 있는 좌표의 수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진..

1. 애자일 소프트웨어 개발 선언이란?애자일 소프트웨어 개발 선언(Manifesto for Agile Software Development)은 소프트웨어 개발을 새로운 방식으로 접근하려는 철학을 담고 있다. “Agile”은 변화에 유연하게 대응하며, 사람 간의 상호작용을 중시하고, 고객과의 협력을 중심에 둔다는 철학이다. 선언은 다음 네 가지에 더 큰 가치를 둔다고 명시하고 있다.공정과 도구보다 개인과 상호작용을포괄적인 문서보다 작동하는 소프트웨어를계약 협상보다 고객과의 협력을계획을 따르기보다 변화에 대응하기를왼쪽 요소도 중요하지만, 오른쪽에 더 큰 가치를 둔다는 의미로 작성되었다. 이 선언에는 Kent Beck, Martin Fowler, Robert C. Martin 등 소프트웨어 개발의 대가들이 참..

1. 형상 관리 도구란?소프트웨어 형상 관리(SCM, Software Configuration Management) 혹은 구성 관리, 버전 관리 시스템(VCS, Version Control System), 소스 관리 등 다양한 용어가 있지만, 핵심은 소프트웨어 개발 환경을 체계화하고 관리하는 것에 있다. 형상 관리 도구는 단순히 소스 코드만 관리하는 것이 아니라, 개발 환경과 빌드 구조 등 전반적인 개발 요소를 베이스라인(baseline)으로 정의해 안정적이고 재현 가능한 작업 환경을 제공한다.이러한 형상 관리 도구는 하나의 소프트웨어 산출물(binary)을 생성하기 위한 모든 아이템과 공정을 체계적으로 관리하며, 프로젝트 전체의 변경 이력을 추적해 특정 버전으로 되돌릴 수 있도록 한다. 형상 관리 도구..

1. 데브옵스란?데브옵스(DevOps)는 빠르게 변하는 비즈니스 요구에 대응하고, 개발과 운영 간의 협업을 극대화해 빠른 서비스 제공을 가능하게 하는 방법론이다. "Development(개발)"과 "Operations(운영)"의 합성어로, 개발과 운영 담당자가 긴밀히 협력해 높은 효율을 낼 수 있도록 하는 것이 핵심이다.데브옵스는 정의가 명확히 고정되지 않았으며, 많은 기관들이 그들의 경험과 시각에 따라 각기 다른 방식으로 정의한다. 다음은 여러 기관에서 정의한 데브옵스의 의미를 비교해 본다:Atlassian데브옵스는 팀 지원과 팀 간 커뮤니케이션, 기술 자동화를 강조하며, 소프트웨어 개발 팀과 IT 팀 간의 프로세스를 자동화하고 통합하는 일련의 관행, 도구 및 문화적 철학이다.Amazon데브옵스는 애플..

1. 개요MSVC(마이크로소프트 비주얼 C++)와 Visual Studio는 소프트웨어 개발에서 필수적인 툴체인으로, 코드 작성, 디버깅, 빌드 등의 과정을 효율적으로 관리할 수 있도록 돕는 도구이다. MSVC는 특히 C++ 개발에 강점을 가지며, Visual Studio는 이를 통합하여 다양한 언어와 플랫폼을 지원하는 개발 환경을 제공한다. 각 버전은 고유한 특징을 가지며, 컴파일러 버전을 확인해야 특정 기능의 지원 여부를 파악할 수 있다. 이를 위해 MSVC는 _MSC_VER 매크로를 제공하며, 각 버전에 대응하는 값을 통해 버전을 추적할 수 있다.이 글에서는 MSC 및 MSVC 버전의 변화와 활용법, Visual Studio 버전의 특징, 그리고 _MSC_VER 값을 체계적으로 정리하여, 독자가 컴..

1. 개요네트워크와 소켓 프로그래밍은 컴퓨터와 장치 간의 데이터를 주고받기 위한 핵심 기술로, 오늘날 인터넷과 분산 시스템의 근간을 이루고 있다. 이 기술의 기원은 초기의 ARPANET과 같은 네트워크 시스템에서 시작되었으며, 현대에는 TCP/IP 프로토콜을 기반으로 발전했다.특히, 분산 환경의 확산과 클라우드 컴퓨팅의 등장으로 인해 네트워크와 소켓 프로그래밍은 더욱 중요해졌다. 네트워크는 데이터를 전송하기 위해 여러 장치를 연결하는 시스템이며, 소켓은 이러한 통신을 가능하게 하는 소프트웨어 인터페이스이다. 이를 통해 애플리케이션 간 데이터 송수신, 연결 설정, 오류 처리 등 다양한 기능을 구현할 수 있다.이 글에서는 네트워크와 소켓 프로그래밍의 개념, 구조, 작동 원리, 활용 사례, 보안, 그리고 에러..

1. 개요SQLite는 서버리스(serverless) 데이터베이스 관리 시스템(DBMS)으로, 경량화된 설계와 높은 접근성을 자랑한다. 일반적인 데이터베이스 시스템과 달리 별도의 서버 프로세스 없이 동작하며, 모든 데이터가 단일 파일에 저장된다. 이러한 특징 덕분에 SQLite는 설정, 관리, 배포 등의 작업에서 복잡도를 크게 줄이며, 다양한 환경에서 활용된다. SQLite는 다양한 플랫폼에서 광범위하게 사용되며, 특히 리소스가 제한된 모바일, 임베디드 환경에서 필수적인 기술로 자리 잡고 있다. SQL 표준을 준수하면서도 빠르고 간편하게 동작하는 SQLite는 학습과 실무에서 모두 활용 가치가 높다.2. SQLite의 주요 장점배포의 간편함SQLite는 데이터베이스 설정에 추가적인 서버 인프라가 필요하지..

1. 개요Oracle은 데이터를 저장, 관리, 검색하는 데 필요한 기능을 제공하는 관계형 데이터베이스 관리 시스템 (RDBMS)으로 시작했지만, 현재는 IT 업계 전반에서 다양한 소프트웨어와 클라우드 서비스를 제공하는 글로벌 기업으로 자리 잡았다. 회사는 데이터베이스뿐만 아니라 ERP, 클라우드 컴퓨팅, 하드웨어 솔루션 등 폭넓은 제품군을 보유하고 있으며, 이를 통해 대규모 데이터를 효율적으로 처리하고 다양한 비즈니스 요구를 충족한다.Oracle의 데이터베이스는 높은 신뢰성, 확장성, 고성능을 제공하며, 다중 사용자 환경에서도 안정적으로 작동한다. 특히 데이터의 무결성을 유지하고 보안을 강화하는 다양한 기능을 통해 기업의 핵심 데이터 자산을 안전하게 보호한다. 이러한 특성은 금융, 제조, 전자상거래, 공..

1. 개요소프트웨어 개발과 배포 방식이 진화하면서 "도커(Docker)"라는 이름은 이제 누구나 한 번쯤 들어봤을 만큼 중요한 도구가 되었다. 도커는 소프트웨어를 일관성 있게 배포하고 실행할 수 있는 "컨테이너"라는 기술을 활용해, 다양한 환경에서도 동일한 애플리케이션이 동작하도록 돕는다. 이번 글에서는 도커가 무엇인지, 도커와 가상머신(VM)의 차이점, 도커가 해결해주는 문제점, 그리고 도커의 장단점에 대해 이야기해보려고 한다.2. 도커의 개념과 역할도커는 쉽게 말해 "소프트웨어를 통째로 담아 어디서든 실행할 수 있게 해주는 도구"라고 볼 수 있다. 애플리케이션을 개발하고 배포할 때 운영 체제나 각종 라이브러리, 종속성이 복잡하게 얽히면 다른 환경에서는 코드가 제대로 작동하지 않는 경우가 많다. 도커는..