Study: ComputerScience(CS)
[Linux] NTP 서버 시간 동기화
💡 본 문서는 'NTP 서버를 활용한 시간 동기화'에 대해 정리해놓은 글입니다. 각 서버의 시간이 조금이라도 틀어지게 되면 로그를 확인하는 과정에서 시간 간극으로 인해 정확한 원인을 파악하지 못하는 경우가 발생합니다. 이를 예방하기 위해 서버 간 시간 동기화 하는 과정이 필요하며, 글 하단에서는 내부망 내에서 NTP 서버를 이용하여 지속적으로 시간 동기화를 해주는 작업에 대해 소개하고 있으니 참고하시기 바랍니다. Linux 서버 간 시간 동기화 (일시적) 수동으로 시간 변경하기 (매우 비추천) 사용자가 특정 시간을 지정해서 시간을 설정하는 방법이 있으나, 이는 특정한 목적이 아니라면 매우 비추천하는 방법입니다. date -s "2022-09-27 18:00:00" 하나의 서버를 기준으로 시간 동기화 특정..
[SW공학] 다양한 종류의 SW 테스트 분류 및 정의
💡 본 문서는 '다양한 종류의 SW 테스트 분류 및 정의'에 대해 정리해놓은 글입니다. 개발한 SW에 대해 한가지 관점으로 테스트를 하게된다면, 다른 부분에 있어서 여러 문제가 발생할 수 있습니다. 이를 예방하고 이에 대한 관점을 넓히기 위해서는 다양한 종류의 SW 테스트에 대해서 아는 것이 중요합니다. 해당 문서에서는 다양한 SW 테스트를 분류하고 정리하였으니 참고하시기 바랍니다. 1. SW 테스트 분류 기준 테스트의 종류는 여러가지 분류기준에 따라서 다양하게 이름 붙여질 수 있으며, 다양한 종류의 테스트를 먼저 아래와 같이 구분하고 정리할 것입니다. 1.1 블랙박스 테스트 vs 화이트박스 테스트 블랙박스(Black Box) 테스트: 소프트웨어 내부 구조가 어떻든 간에 외부로 나타나는 현상만을 기준으로..
[Network] Blocking vs Non-Blocking & Sync vs Async 비교 정리
💡 본 문서는 'Blocking vs Non-Blocking'과 'Sync vs Async'에 대해 정리해놓은 글입니다. network외에도 이 개념은 사용할 때도 있으나, 이 문서의 경우 네트워크 상에서 말하는 개념으로 설명하고 있으니 참고바랍니다. Blocking vs Non-Blocking I/O 다른 주체가 작업할 때 자신의 제어권이 있는지 없는지로 판단할 수 있습니다. Blocking I/O System Call이 끝날때까지 프로그램은 대기해야 하고 System Call이 완료가 되면 그때야 Return 합니다. 다시 말하면, 자신의 작업을 진행하다가 다른 주체의 작업이 시작되면 다른 작업이 끝날 때까지 기다렸다가 자신의 작업을 시작하는 것입니다. 이는 제어권이 다른 작업에 있다고 표현할 수 있..
[DB] DB 데이터 dump하는 방법 : MySQL 데이터를 export, import 하자! (feat. mysqldump)
💡 본 문서는 mysql 데이터 덤프하는 'mysqldump'에 대해 정리해놓은 글입니다. 따라서 'mysqldump'를 이용하여 mysql 데이터를 export, import를 하고자 하니 참고하시기 바랍니다. mysql 설치 mysql이 설치가 되어있지 않다면 다음의 링크를 통해 설치를 진행합니다. mysql official page: https://dev.mysql.com/downloads/mysql/5.7.html#downloads 잘 설치 되었는지 확인합니다. mysql --version MySQL 데이터 내보내기(export) & 가져오기(import) MySQL 데이터 내보내기 $ mysqldump -u -p > .sql Enter password: 참고로 table_name을 작성하지 않으..
[Linux] C++ 컴파일러에 대하여 (feat. clang/LLVM, clang-format, clang-tidy)
💡 본 문서는 '[Linux] C++ 컴파일러에 대하여 (feat. clang/LLVM, clang-format, clang-tidy)'에 대해 정리해놓은 글입니다. C++ 파일을 컴파일하기 위해서 많이 사용하는 컴파일러는 gcc와 clang입니다. 본 문에서는 clang에 대한 설명 및 관련 도구들에 대해 정리하였으니 참고하시기 바랍니다. About clang C, C++, Obejctive-C, Obejctive-C++ 프로그래밍 언어를 위한 컴파일러 프론트엔드이며, LLVM을 백엔드로 사용하며 LLVM 2.6 이후로 릴리즈의 일부로 자리잡으며, GCC(GNU 컴파일러 모음)를 대체하는 것을 목표로 하고 있습니다. 현재 GCC가 GPLv3를 적용한 이후 소스 코드 공개를 꺼리는 기업들이 하나둘씩 LL..