syslog란?
·
Operating System/Security
개념Syslog란 유닉스 시스템 내에서 사용하는 일종의 '로그 생성/관리' 도구이다.커널 및 응용프로그램에 의해 발생하는 로그를 가리지 않는다​  ​동작 방식과 여담커널 및 응용 프로그램이 syslog API를 통하여 로그를 생성하면​syslogd 데몬 프로세스가 syslog.conf 설정 파일을 참조하여 지정한 로그파일, 콘솔(Console) 또는외부 서버(Remote Server) 등에 로그를 기록한다​/etc/syslog.conf 파일은 시스템 로그 데몬이 실행될 때 참조되는 로그 설정 파일로서어떤 로그를 어디에 남길지 → 로그 저장 규칙이 정의되어 있다.syslog.conf 파일의 각 행들은 특정한 포맷으로 정의되어 있다​ A 서비스(데몬) 에 의하여 → B로그 레벨이상의 상황이 발생한 경우 C의..
코딩 네이밍 규칙
·
Programming
평소에도 나름 머릿속에 규칙을 만들어서 변수명을 사용 하였는데, 코드를 짜다보니까 점점 이 규칙이 복잡해 지는듯 싶어 포스팅에 정리한다. 해당 포스팅은 지속적으로 수정될 예정이다. 1. 헝가리안 표기법 지양 헝가리안 표기법 - 위키백과, 우리 모두의 백과사전 헝가리안 표기법(Hungarian notation) 또는 헝가리 표기법은 컴퓨터 프로그래밍에서 변수나 함수의 이름에 그 종류, 곧 흔히 데이터 타입 따위를 명시하는 표기법으로, 명명규칙의 일종이다. 고안자 ko.wikipedia.org 현대 IDE 는 기능이 출중해서 헝가리안 표기법을 앵간해선 사용하지 않아도 된다. 특별히 강조해야 할 경우에만 제한적으로 사용. ※ IDE가 없어도 왠만한 환경에서 VSCode 사용이 가능하다. IDE를 대체할 수단이..
[C++] 백준 1009 번 문제 해설
·
Algorithm/BACKJOON
1009번: 분산처리입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a www.acmicpc.net  정말 간단한 문제이다.논리적으로 조금만 생각해 보면 어렵지 않게 풀 수 있다.  설명 위 문제의 키포인트는 '마지막 자리' 숫자만 출력하면 된다는 것이다.위의 예제입력 9 635 의 경우엔 9의 635 제곱을 하라는 의미인데,이런식으로 연산하는것은 자원 낭비가 심할뿐더러추가 라이브러리를 이용하지 않는다면 overflow 를 일으킬 것이다.마지막 자리만 구하기 위해서는 굳이 모든 연산을 할 필요가 없다  코드#include using namespace std;int main(){ ios_base::sync_with..
[C#] 반복문 캐싱 최적화
·
Programming/C#
이전에 봤던 책에서 C++ 의 최적화가 얼마나 중요한지 짚고 넘어갔었다. 한빛미디어 Optimized C++, C++ 최적화 후기 이 책은 크게 '깊게' 들어가는 경향은 없지만 막 초급자를 탈피하여 중급자로 진입한 C++ 프로그래머 에게는 유용한 책이 될 것이다. 이 책을 읽고 나면 C++ 의 '미묘함' 을 다시한번 확인할 수 있 cypsw.tistory.com 최근 다중 Thread 내의 여러가지 for 문이 동시에 돌아가는 구문이 있었는데 바꾼 코드가 조금 지연이 발생하여 원인을 찾던 중, C# 에서도 캐싱이 적용되는지 확인하기 위해 간단하게 테스트 해 보았다. using System; using System.Collections.Generic; using System.Diagnostics; name..
WinUI 3 란 무엇일까? (리유니언 프로젝트 / Windows 앱 SDK )
·
Miscellaneous
서론우선 WinUI 3을 말하기 위해선 WinUI 2 를 말해야 할 것 같다.아마도 WinUI 2 가 뭔지도 모르는 사람이 대다수일 듯 하다.왜냐면 그만큼 인기가 ㅈ도 없거든. WinUI 2 는 UWP 기반으로 돌아간다.UWP 는 뭔가? 하면Windows 10 을 이용하면서 이런 창을 본 적이 있을거다.좌측의 프로그램 제거와 우측의 프로그램 제거의 차이가 뭘까?좌측은 WinUI 2 (UWP), 우측은 Win32 기반으로 개발된 프로그램들 이다.(일부 Win32 프로그램들이 좌측에도 '등록' 되어 있긴 하다.) 대표적인 예로 3D 그림판은 UWP 로 개발되었고,2D 그림판은 Win32 로 개발되었다.(2024년 현재는 2D 그림판도 WinUI 3 로 재설계 되었다.) MS 에서는 WinUI 2 를 이와 같..
[C++] 백준 2292 문제 해설
·
Algorithm/BACKJOON
2292번: 벌집위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌www.acmicpc.net 벌집 문제로 이전에 했던 투포인트보다 논리적으론 조금 어려운 문제이다.(나는 투포인트 문제가 더 쉬웠다) 설명 문제는 비교적 직관적으로 이해하기 쉬운 편이다.위와 같이 벌집이 있을때, 벌집을 자세히 관찰 해 보면 특정 숫자 구간마다 경로가 증가하는것을 확인할 수 있다.위 선을 기준으로 벌집의 경로가 하나씩 증가한다.7 의 경우엔 = 1,7 → 28 의 경우엔 = 1,2,8 or 1,7,8 → 3육각형 내의 경로점을 그려보면,같은 육각형 내의 선분이 지나가는 모든 구간은같은 ..
[C++] 백준 3273 문제 해설
·
Algorithm/BACKJOON
3273번: 두 수의 합n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i www.acmicpc.net 요즘 머리를 좀 안 쓴것 같아서 오늘부터 백준을 한 문제씩 풀어보려 한다. (안되면 말고)처음으로 시도해 본 문제는 비교적 쉬운 투포인터 문제이다.  처음볼땐 언어적으로 이해하기가 힘들어서그냥 코드를 먼저 살펴보니 쉽게 이해가 되었다.  설명입력 3개를 받는다.첫 입력 = 받을 수열의 size두번째 입력 = ' ' 로 구분지은 수열세번째 입력 = 수열중 2개를 더해서 나와야 되는 숫자. 'n개의 서로 다른 양의 정수' 를 입력 받는다 ..
[Linux] crypto++ 리눅스 빌드 방법
·
Operating System
Crypto++ Library 8.5 | Free C++ Class Library of Cryptographic Schemes key agreement schemes Diffie-Hellman (DH), Unified Diffie-Hellman (DH2), Menezes-Qu-Vanstone (MQV), Hashed MQV (HMQV), Fully Hashed MQV (FHMQV), LUCDIF, XTR-DH www.cryptopp.com Crypto++ 는 C++ 용 무료 암호화 체계 라이브러리 이다. 그런데 이놈을 다운받아 보면 특이하게도 visual studio 기준으로 프로젝트가 구성되어 있다. 나는 CMake & GCC 를 이용해서 이놈을 이용하고 싶었다. (즉 리눅스용 라이브러리를 만들고 싶었..
[Java] 인터페이스 구현 방법
·
Programming/Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 package test; interface IKK { void start(); } public class Gisafirst { public static void b(IKK k) { k.start(); System.out.println("aa"); } public static void main(String[] args) { b(new IKK() { @Override public void start() { // TODO Auto-generated method stub System.out.println("interface"); } }); }..
[C++] 인터페이스에 관한 팁 (순수가상함수)
·
Programming/C++
1. 소멸자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 #include class AAA { public: //virtual ~AAA() {}; virtual void print() = 0; }; class A { public: A() {}; int b = 10; virtual void print() { std::cout