All Pages
4. C# Sockets 클라 동작 구조
4. C# Sockets 클라 동작 구조
2023.10.04소켓 통신 실행 흐름더보기소켓 통신 실행 흐름 소켓 통신 실행 흐름클라이언트-서버 통신 모델더보기Network 네트워크로 연결되어 있는 서로 다른 두 컴퓨터가 데이터를 주고 받을 수 있도록 하는 것으로 물리적인 연결이 필요하다. 클라이언트-서버 통신 모델 대basiclike.tistory.com Step 0. 최소 동기 클라이언트 (기본 뼈대) 더보기using System;using System.Net;using System.Net.Sockets;using System.Text;class Step0_Minimal{ static void Main() { //(1) Socket sock = new Socket(AddressFamily.InterNetwork, Socket..
Thread 02. 스레드, 블로킹, 논블로킹
Thread 02. 스레드, 블로킹, 논블로킹
2023.10.041. 스레드 1.1 실행 중인 프로세스의 스레드 확인윈도우 환경에서, Ctrl + Shift + ESC 키를 눌러 Task Manager(작업 관리자)를 실행한다.[ Details ] 탭에서 컬럼명(Name, Status...)을 오른쪽 클릭하면 보여질 추가 정보를 선택할 수 있다.Select Columns 에서 Threads 를 체크한다.메모장 프로그램은, 실행(프로세스)중에 15개의 스레드가 작업하고 있다.(스레드의 이해 없이 프로그래밍은 불가능하다.) 1.2 스레드란? 1.2.1 Process(프로세스)가 "실행" 단위라면, Thread(스레드)는 "실행 흐름" 단위다. 하나의 프로그램은 하나 이상의 프로세스를 가지고 있고, 하나의 프로세스는 반드시 하나 이상의 스레드를 갖는다.프로그램 실행 =..
Thread 01. 프로세스, 동시성, 병렬성, 비동기
Thread 01. 프로세스, 동시성, 병렬성, 비동기
2023.10.041. 프로그래밍 기술을 바라보는 개발자의 관점 모든 프로그래밍 기술은, 폰 노이만 구조 이래 근본 원리와 기술 뿌리가 변하지 않았다.모든 프로그래밍 기술은, 개발에 필요해서 등장했다.모든 프로그래밍 기술은, 기존 개발 방법을 조금이라도 쉽고, 편리하게 하기 위해 발전된 다른 형태일 뿐이다. 그렇다면 스레드는 왜 등장했고, 어떤 부분을 개선하기 위해 등장했을까? 2. 프로세스와 실행 2.1 학습방향스레드는 프로세스를 먼저 이해해야 한다.스레드 학습 이전에 프로세스(≒실행) 관점에서 용어를 정리한다. 2.2 실행중인 프로세스 확인하기윈도우 환경에서, Ctrl+ Shift + ESC 단축키를 눌러 Task Manager(작업 관리자)를 실행한다.좌측의 [ Process ] 탭에서 현재 실행 중인 프로..
3. C# Sockets 서버 동작 구조
3. C# Sockets 서버 동작 구조
2023.10.04소켓 통신 실행 흐름더보기소켓 통신 실행 흐름 소켓 통신 실행 흐름클라이언트-서버 통신 모델더보기Network 네트워크로 연결되어 있는 서로 다른 두 컴퓨터가 데이터를 주고 받을 수 있도록 하는 것으로 물리적인 연결이 필요하다. 클라이언트-서버 통신 모델 대basiclike.tistory.com VS C# 콘솔 프로젝트 생성하기더보기Visual Studio C# 콘솔 프로젝트 생성하기 Visual Studio C# 콘솔 프로젝트 생성하기VS C# 콘솔 프로젝트 생성하기더보기 추가 설정더보기basiclike.tistory.com Step.1 서버 준비 구현더보기using System.Net;using System.Net.Sockets;namespace ConsoleApp4{ internal c..
2. IP, Port, EndPoint
2. IP, Port, EndPoint
2023.10.04IP & Port 더보기네트워크 프로그래밍 개요 네트워크 프로그래밍 개요1. 학습 순서더보기(1) 요약개념 → 구조 → 코드 → 실행 흐름 (2) 상세네트워크 프로그래밍 개념 (모든 IT 기술 공통)네트워크 프로그래밍 구조 (모든 IT 기술 공통)네트워크 프로그래밍 코드 (언basiclike.tistory.com IP 사용하기: System.Net의 IPAddress 클래스더보기일반적으로 IPv4 주소체계 기반으로 IPAddress 객체를 생성하여 IP 주소를 변수 형태로 사용[1]문자열 파싱, [2]바이트 배열, [3]정수 입력 할 수 있다.using System;using System.Net;namespace NetworkTest{ class Program { static vo..
1. 소켓 네트워크
1. 소켓 네트워크
2023.10.04네트워크 표준더보기네트워크 표준 네트워크 표준Socket 더보기Socket 은 현실의 전화기와 같은 단말을 프로그램 소스코드로 구현한 논리적 추상화 형태로, 일반적인 모든 프로그램의 네트워크는 Socket 이라는 전 세계 소켓 인터페이스 기반으로 구basiclike.tistory.com C# Socket더보기 API / 클래스설명제공 기능OS/PLUnixSocket API네트워크 표준 APILow Level 의 소켓 프로그래밍TCP, UDP 등 다양한 네트워크에 사용Unix(+ Ubuntu, Redhat..)WindowWinSock2 APISocket API 윈도우 버전Window(C/C++)C#.NETSocketsWinSock2 API C# 버전Sockets 닷넷은 WinSock2 API 호출Windo..
영문 입력 키보드 레이아웃 제거
영문 입력 키보드 레이아웃 제거
2023.09.23문제. 윈도우 기본 언어를 English, 입력을 Korean 으로 쓰게 되면 아래 이미지 왼쪽처럼 입력에서 English(US) 가 기본 입력 레이아웃으로 추가되어 삭제가 불가능하다. 한/영 전환시 불편하다. 해결법. Add a language 에서 언어를 english (united states) 로 설치하고 삭제하면, 입력에서 레이아웃이 제거된다. 순서. ① win + i ② Time & language >> Language & region ③ Add a language 클릭 ④ english (united states) 검색 ⑤ 체크 해제 후, 설치 ⑥ 설치된 english (united states) 제거 ⑦ 입력 레이아웃에서 English(US) 가 삭제된다.
VS2022 터미널 한글 깨짐
VS2022 터미널 한글 깨짐
2023.09.221. 시스템 로케일 korean 으로 수정https://basiclike.tistory.com/6 대부분 여기서 해결된다.1번으로 해결 안되면, 2번 실행2. 위 시스템 로케일 수정에서 Unicode UTF-8 사용 체크[시스템 로캘 변경] >> Beta : 세계 언어 지원을 위해 Unicode UTF-8 체크2번으로 해결 안되면, 3번 실행 *참고로, 한컴 문서를 사용하는 사람은, 시스템 로케일을 수정하면 안됨. 복붙시 한글 깨짐 발생함3. 비주얼 스튜디오 설정Visual Stdio 실행 후 도구(t) > 옵션 > 텍스트 편집기 > 일반 > 서명 없는 UTF-8 인코딩 자동 검색 체크 해제
우분투에서 윈도우 멀티 부팅 설치
우분투에서 윈도우 멀티 부팅 설치
2023.09.19굳이 우분투에서 윈도우 멀티 부팅 세팅을 할 이유가 없다.아래 4가지 방법이 가장 쉽다. Windows 설치 후 우분투를 설치Windows 에서 WSL 이용Windows 에서 VM 이용Windows 에서 도커 이용하지만 굳이 우분투에서 윈도우 멀티 부팅 세팅을 하려면 아래와 같은 순서를 따른다. 우분투에서 윈도우 멀티부딩 설치 방법 요약 uBuntu 설치 USB 에서 uBuntu liveUSB mode 실행gparted 프로그램으로 파티션 분할윈도우 설치 가능한 ntfs 파일 시스템 설정분할된 파티션에 윈도우 설치GRUB bootloader 복구 우분투에서 윈도우 멀티부딩 설치 방법 상세1컴퓨터 시작시 f2, f5, del 등으로 BIOS 진입USB로 부팅되도록 설정 2부팅 usb에서 ubuntu 선택B..
Linux Package Tool 이해와 사용
Linux Package Tool 이해와 사용
2023.09.15linux window 에서 오피스 문서 프로그램을 사용하려면, 오피스 프로그램을 다운받아 설치하고 실행했다.리눅스에서는 이런 과정을 package 로 처리한다. package 관련있는 파일 모음 linux package 정의 프로그램이 실행하는데 필요한 파일(설치, 설정, 라이브러리 등) 모음윈도우의 설치, 삭제 프로그램 파일에 해당한다.리눅스는 패키지 단위로 프로그램을 관리한다. linux package 구분 소스 패키지(Source Package)오픈 라이브러리소스코드 수정 가능실행 환경에 맞게 컴파일 하여 사용 가능 바이너리 패키지(Binary Package)컴파일 된 실행 파일로, 다운 후 곧바로 실행 가능실행 환경과 맞지 않는다면 실행 문제 발생패키지 의존성(별도의 라이브러리가 추가적으로..
Java 버전 표기법 (제품 버전 vs 개발자 버전)
Java 버전 표기법 (제품 버전 vs 개발자 버전)
2023.09.11Oracle 공식 문서Both version numbers (1.6.0 and 6) are used to identify this release of the Java Platform. Version 6 is the product version, while 1.6.0 is the developer version. The number 6 is used to reflect the evolving level of maturity, stability, scalability and security of JavaSE. 1) Java 8 이전 (과거, "1.x" 표기 사용) Java 버전 정보 표기법 두종류는 같은 의미다.SE(Standard Edition, 공식 제품 버전)JDK(Java Development K..
CPU 아키텍처와 컴파일러
CPU 아키텍처와 컴파일러
2023.09.11아키텍처 종류32bit vs 64bit 구분 x86Intel 32bit CPUWindows, Linux, Mac x86_64 (amd64)x86 호환, Intel 64bit CPUAMD, Intel 라이센스 협약으로 amd64 명칭도 사용Windows, Linux, Mac ARMv7~v7arm 32bit CPUx86 은 데스크탑, arm은 모바일 등 저전력으로 대표됨 ARMv8-A64 (A64/64비트 명령어 집합)32bit arm 호환ARM 64bit CPU모바일(엑시노트, 스냅드레곤, 기린, A7이후) , 스마트tv, 가전 등 저전력 장치애플 PC는 M1 이후 아키텍처와 컴퍼일러빌드 결과물은, 특정 아키텍처에서만 실행되는 바이너리다.실행되는 아키텍처에 맞는 컴파일러를 선택하여 빌드해야 한다.