수달의 IT 세상

[Ubuntu, Nginx] PHPMyAdmin 설치하기 포스트 Teaser

[Ubuntu, Nginx] PHPMyAdmin 설치하기

카테고리:

3 분 소요

PHPMyAdmin php로 작성된 PHPMyAdmin은 MySQL 데이터베이스를 관리하기 위한 웹 기반의 오픈 소스 관리도구이다. 웹 브라우저를 통해 MySQL 데이터베이스에 접속하여 데이터베이스를 관리, 조작하는 등 데이터베이스 안의 테이블을 만들고 수정하고, 데이터를 삽입, 수정, 삭제할 수 있다. ※ 본 게시글은 Ubuntu 22.04 LTS 버전을 기준으로 작성되었습니다. 1. php 설치 및 연동하기 https://syudal.kr/post/Ubuntu-Nginx-PHP-연동하기/ 2. 관계형 데이터베이스 시스템(RDBMS) 설치하기 RDBMS의 경우 프로젝트의 요구 사항 및 선호도, 라이선스 제약 등을 고려하여 MariaDB, MySQL, PostgreSQL 등등의 소프트웨어 중에 선

[C#] 비동기 이벤트 기반 소켓 서버 구현하기 포스트 Teaser

[C#] 비동기 이벤트 기반 소켓 서버 구현하기

카테고리:

4 분 소요

서버의 종류 서버를 구현하는 방식에는 크게 단일 스레드 기반 서버와 다중 스레드 기반 서버로 나뉜다. 다중 스레드 기반 서버의 경우, 각각의 스레드가 연결을 담당하여 통신하므로 이해가 쉽다. 하지만, 단일 스레드인데 어떻게 여러 클라이언트의 접속을 해결하느냐는 의문이 든다. Node.js의 libuv 구현체의 Event Loop를 사용하여 구현한 서버를 보면 이해할 수 있다. C#의 SocketAsyncEventArgs에서도 운영체제에서 제공하는 IOCP(I/O Completion Port)와 같은 메커니즘을 ThreadPool을 사용하여 비동기 작업을 처리한다. 소스 코드 아래는 SocketAsyncEventArgs를 사용하여 비동기 이벤트 기반의 에코 서버를 구현하는 코드이다. Async

[C#] 콜백 함수 포스트 Teaser

[C#] 콜백 함수

카테고리:

3 분 소요

콜백 함수 콜백 함수(callback function)는 프로그래밍에서 특정 이벤트가 발생했을 때 호출되는 함수를 가리킨다. 콜백 함수는 다른 함수나 컴포넌트에 의해 호출되는 함수로서, 보통 이벤트 핸들러로 비동기적인 프로그래밍이나 이벤트 기반 프로그래밍에서 자주 사용된다. 이벤트 처리(Event Handling): 사용자가 버튼을 클릭하거나 다른 이벤트가 발생했을 때 특정 작업 수행 비동기 작업(Asynchronous Operations): 비동기 작업이 완료되었을 때 실행되는 함수를 콜백으로 등록하여 작업이 끝날 때까지 대기하지 않고 다른 작업 수행 타이머 및 인터벌(Timeouts and Intervals): 특정 시간 간격으로 실행되는 작업 수행 C#에서 콜백 함수는 델리게이트(d

[C#] 크로스 스레드 작업이 잘못되었습니다. 오류 해결하기 포스트 Teaser

[C#] 크로스 스레드 작업이 잘못되었습니다. 오류 해결하기

카테고리:

최대 1 분 소요

문제 상황 C#으로 멀티 스레드 프로그래밍을 하다보면, 컨트롤이 자신이 만들어진 스레드가 아닌 스레드에서 액세스하는 경우에 아래와 같은 메시지를 출력한다. 이럴 때는 Invoke함수를 사용하여 컨트롤이 자신이 만들어진 스레드 아닌 스레드에서의 함수 호출을 위임한다. 소스 코드 아래의 텍스트박스의 텍스트를 바꾸는 예제이다. private void InvokeAccess(TextBox textBox, string data) { if (textBox.InvokeRequired) { textBox.Invoke((MethodInvoker) delegate { textBox.Text = data; }); } else { textBox.Text = data;

[Ubuntu, Cloudflared] Cloudflared로 Ngrok처럼 Tunneling하기 포스트 Teaser

[Ubuntu, Cloudflared] Cloudflared로 Ngrok처럼 Tunneling하기

카테고리:

3 분 소요

Cloudflare Cloudflare는 사이트를 운영할 때 WAF(Web Application Firewall; 웹 어플리케이션 방화벽), CDN(Content Delivery Network; Content Distribution Network), DDoS(Distributed Denial of Service attack; 분산 서비스 거부 공격), 서버의 원본 IP 숨기기 등의 중요한 기능을 무료로 제공한다. Cloudflared(Cloudflare Tunnel) 이제는 Cloudflared(Cloudflare Zero Access, 구 Cloudflare Argo Tunnel)를 통해 Ngrok처럼 포트포워딩 없이 Private에서 개발하고 있는 환경을 Public으로 Tunneling할 수 있다

[PHP] 파일 업로드 하기 포스트 Teaser

[PHP] 파일 업로드 하기

카테고리:

3 분 소요

소스 코드 php로 여러가지를 개발하다 보면, 사용자가 파일을 업로드 해야 할 상황이 있다. 아래는 php8 에서 사진 파일을 업로드하는 예제이다. index.html <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>사진 업로드</title> </head> <body> <form action=&

인간 관계에서 오는 중독 포스트 Teaser

인간 관계에서 오는 중독

카테고리:

1 분 소요

중독적인 인간 관계는 정신적, 감정적으로 무언가에 지나치게 의존하고, 그 의존성으로 인해 심리적으로 부정적인 영향을 받는 상황이다. 중독적인 인간 관계 인관 관계에서 오는 중독은 다양한 형태로 나타날 수 있으나, 크게 상대방에 대한 과도한 의존성과 감정적 의존을 보이는 애정 중독과 한 사람이 다른 사람의 감정, 행동, 문제 해결을 지나치게 관여하고, 상대방의 요구를 우선시하는 의존 관계(Codependency) 중독으로 나눌 수 있다. 중독적인 인간 관계가 가지는 특징 중독적인 관계에서 있는 사람은 종종 자신의 가치나 감정을 무시하고 상대방의 요구나 감정을 우선시하는 자아부정, 상대방이 없으면 자신을 완전하지 못하다고 느끼는 과도한 의존성, 분노와 감정 폭발 그리고 화해와 다시 의존으로 이어지는 싸

[Minecraft] Forge와 Optifine 같이 사용하기 포스트 Teaser

[Minecraft] Forge와 Optifine 같이 사용하기

카테고리:

1 분 소요

1. Forge 설치하기 Minecraft Forge는 아래의 링크에서 다운로드 받을 수 있다. https://files.minecraftforge.net/net/minecraftforge/forge/ 다운로드 받은 후 Java로 실행하면 다음과 같은 창이 표시된다. 확인을 클릭하고 완료될 때 까지 기다리면 좌측 하단과 같이 Minecraft Launcher에 Forge가 추가된다. 2. 옵티파인 다운로드 받기 Optifine은 아래의 링크에서 다운로드 받을 수 있다. https://www.optifine.net/downloads 3. 옵티파인 적용하기 옵티파인을 다운로드 받은 후 마인크래프트를 실행한다. 모드 버튼을 눌러 모드 창을 열어준다. 모드 폴더 열기를 누르면 모드