전체 글205 프로그래머스 C# - 소수 만들기 (Summer/Winter Coding) 서론 이번에 푼 문제는 소수값을 구하는 방법과 배열에 대한 지식만 있다면 간단히 풀 수 있을만한 문제라고 생각한다. 다른 사람들의 풀이를 보니 정말 접근자체를 다르게 한사람들도 있어 조곰 신기하긴했다. 아직은 알고리즘 초보기에 꾸준히 노력하여 좋은 답안을 낼 실력을 갖춰야겠다. 문제 풀이 using System; class Solution { public int solution(int[] nums) { int answer = 0; for (int i = 0; i k)) continue; if (IsPrime(sum)) answer++; } } } return answer; } //소수 값인지 확인 public static bool IsPrime(int n) { bool isBool = true; for .. Algorithm/Problem Solving 2022. 2. 21. AES & SHA-256 암호화란 ? (개념 / 종류 / 특징) 서론 이번글에서는 AES란 암호화에 대해 정리해볼려 한다. 우선 프로그래밍에 앞서 사용자의 개인 정보에 대해서 암호화는 필수라고 생각한다. 필자는 이번에 대표적인 AES의 암 복호화에 대한 개념들을 정리해보려한다. 암호화란 ? 요즘의 우리는 컴퓨터, 휴대폰 등 전자 기기에 은행(금융) 정보나 본인의 민감 정보들을 넣어놓고 지낸다. 이러한 정보들을 외부에서 함부로 들춰보거나 해킹을 하면 안되기 때문에 우리 개발자들은 해당 정보들을 암호화를 하기 시작했다. 이러한 정보들을 암호화 처리할 경우 해당 정보를 읽을 수 없는 형식으로 변환을 하게 되는데, 우리는 이를 암호문이라 부르며 해당 정보에 접근하기 위해서는 암호화 키가 필요하다. 이 암호화 키를 이용하여 암호화 한것을 복호화하고 해당 정보들을 해당 키를 이.. Computer Science/etc 2022. 2. 18. C# Invoke와 BeginInvoke의 차이점 (목적 / 정의 / 사용 방법 / 예제) 서론 이번 글은 Winform Application에서 스레드 환경을 구성할 때 사용하는 기술인 Invoke와 BeginInvoke의 정의와 차이점에 대해 알아볼 것이다. 우선 해당 글을 작성하기 앞서 스레드를 이용하여 UI를 조작할 때 발생하는 크로스 스레드의 글과 관련 있으니 이전에 작성한 크로스 스레드 해결 방법의 글을 참고하고 해당 글을 읽으면 더 이해하는데 도움이 될 것 이라 생각한다. Invoke & BeginInvoke 목적 UI 컨트롤박스를 생성하게 되면 내부 스레드가 자동으로 생성되는데 별도의 스레드를 생성하여 해당 컨트롤 박스에 접근하려 하면 서로 다른 스레드가 하나의 컨트롤 박스 객체에 접근을 하게 되는데, 이 때 교착상태(크로스 스레드)가 발생하여 Invoke 또는 BeginInvo.. Programming/C# 2022. 2. 18. [C# 채팅 프로그램 #03] TCP/IP통신에서 특정 클라이언트에게만 메세지 보내기 보통 패킷을 주고받는 tcp/ip 통신서버에서 현재 연결되어있는 여러 소켓중 특정 클라이언트 소켓에만 보내는 방법에 대해 여러 가지 고민을 해봤다. 해당 기능을 구현할 때 까지의 흐름은 이랬다 연결하는 소켓의 핸들러id를 배열에 담아두었다가 사용하면 되지않을까? 근데 그럴려면 다중 소켓이 순서 상관없이 마구 접속해있다는 가정하에 원하는 클라이언트를 어떻게 찾을 수 있을까?? 이러한 문제에 또 봉착했다. 근데 생각해보니 그냥 처음 클라이언트가 접속할때 고유ID를 받아놓고 컬렉션에 고유ID와 해당 소켓을 담아두고 특정 장비에게 보낼 때 컬렉션에서 선택한 아이디를 찾아 해당 소켓을 Send하면 되지 않을까?라는 생각에 아 이거다 하고 바로 진행하였다. 진행 후에 다른 사람들은 어떻게 할지 찾아본 결과 비슷하게.. Project History/다중 기능을 포함한 채팅 프로그램 2022. 2. 10. [C# 채팅 프로그램 #02] IOCP - EAP 패턴을 이용한 비동기 TCP/IP 클라이언트 구현 (SocketAsyncEventArgs) 이전 글에서 서버를 구현하는 것을 알아 보았고 이번 글에서는 클라이언트에 대해 알아 볼 것이다. 클라이언트에서도 서버와 동일하게 SocketAsyncEventArgs 클래스를 사용했으며 구현 소스를 통해 알아보자. 1. 서버 연결 client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); client.Connect(IPAddress.Parse(tb_server_ip.Text), int.Parse(tb_server_port.Text)); JObject data = new JObject(); data.Add("type", "init"); data.Add("text", tb_userid.Text); // json -.. Project History/다중 기능을 포함한 채팅 프로그램 2022. 2. 10. [C# 채팅 프로그램 #01] IOCP - EAP 패턴을 이용한 비동기 TCP/IP 서버 구현 (SocketAsyncEventArgs) 이번글에서는 비동기 소켓 이벤트인 SocketAsyncEventArgs를 활용하여 서버를 구현을 해보려한다. SocketAsyncEventArgs는 보통 유니티 게임 서버 개발을 할때 사용하는 경우가 있다고 하며, 나도 사실 이번 프로젝트 진행하면서 처음 사용해본 클래스이다. 이 클래스는 닷넷 비동기 소켓에서 사용하는 개념으로 비동기 소켓 메서드를 호출할 때 마다 반드시 필요한 객체이다. 닷넷 3.5 이전 버전에서는 Begin과 End계열의 API를 사용했지만 닷넷 3.5이상 버전부터는 해당 클래스의 API를 사용하여 소켓 프로그래밍을 구현할 수 있다고 한다. 나도 여지껏 사용해왔던 Begin ~ End 계열의 API를 사용할 경우 IAsyncResult라는 객체를 사용했지만 해당 이벤트 클래스를 이용하.. Project History/다중 기능을 포함한 채팅 프로그램 2022. 2. 10. [C# 채팅 프로그램 #00] 작업 환경 / 기능 구현 리스트 / UI 제작 서론 앞으로 어플리케이션 일을 하면서 TCP/IP 연동은 기본적으로 알아야할 소양이라 생각이 들어 그간 많이 사용해보지 못한 기능들을 사이드 프로젝트를 통해 적립시켜놓을려고 한다. 기본적인 채팅 기능만을 가진 프로그램을 만드는것은 크게 어렵지 않지만 이번 프로젝트를 통해 중요 포인트로 보고있는것은 특정 클라이언트에게 보내는 방법과 패킷 암복호화 작업이다. 사실 이정도만 할줄알면 기본적인 어느 tcp/ip를 통한 연동 프로그램을 만드는데 크게 문제가 없을 것이라고 생각든다. 이번 기회에 나만의 tcp/ip 통신 기술 스택을 쌓아보자. 프로젝트 진행 환경 Tool : VisualStudio 2019 작업 : Windows Form 환경 : .Net Framework 4.8 프로젝트 기능 구현 예정 1. TC.. Project History/다중 기능을 포함한 채팅 프로그램 2022. 2. 10. [Servlet] 서블릿 실행 시간 측정 필터 만들기 (Servlet Performance Time Check Filter) 서블릿에서 필터를 활용하여 모든 서블릿의 동작시간을 체크하는 로직을 정리해두려한다. 만약 필터 없이 페이지마다의 실행 속도를 체크하고 싶으면 해당 클래스마다 타이머 작업을 해줘야하는데 필터를 활용하여 모든 페이지의 퍼포먼스 시간을 체크할 때 사용하면 좋을 것이다. package com.unittest.performance; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.s.. Programming/Spring 2022. 2. 1. C# 프로그램 실행(빌드) 에러 - 혼합 모드 어셈블리는 런타임의 버전에 빌드되며 런타임에 로드 할 수 없습니다. > 발생 에러 문구 만약 4.0 버전이 아니라면 해당 버전에 맞게 supportedRuntime version의 값에 맞춰서 빌드하면 될 것 같다. Error Document/C# 2022. 1. 20. [Java] 정적(Static) 변수와 메서드란? (개념 / 사용 장 단점 / 사용 시기 / 예제) 서론 객체언어에서 사용되는 static과 인스턴스의 변수 및 메서드의 내용을 정리해보려한다. 해당 내용은 기초적인 내용이지만 자세히 인지하지 못하고 넘어갈 수 있는 부분이기에 초기에 잘 잡고 가는 것이 좋을 것같다. ** Static 메서드와 Instance 메서드 개념 ** Static 메서드란? (클래스 메서드) 객체 생성 없이 "클래스.메서드()" 형태로 호출 하는 방식. 인스턴스 멤버와 관련 없는 작업을 하는 메서드이다. 메서드 내에서 인스턴스 변수를 사용할 수 없다. Static 사용의 장점 1. 메모리를 효율적으로 사용이 가능하다. > 생성할 때 마다 인스턴스가 힙에 올라가는 것이 아닌 고정 메모리 이므로 보다 효율적이다. 2. 속도가 빠르다. > 객체를 생성하지 않고 사용하기 때문에 속도가 .. Programming/Java 2022. 1. 20. 이전 1 ··· 12 13 14 15 16 17 18 ··· 21 다음 💲 많이 본 글