* 동기화는 둘 이상의 쓰레드가 서로 작업을 덮어쓰지 않고 공유 리소스(자원)에 안전하게 액세스할 수 있는 방법. * 임계영역(Critical section)공유 리소스(자원)에 Thread safety하게 접근하는 영역 * Lock 키워드보편적으로 동기화에 사용할 객체를 정의한다.object lockObj = new object();lock(lockObj) 상호 배제 잠금을 획득 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Runtime.Remoting.Channels;using System...
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Runtime.Remoting.Channels;using System.Text;using System.Threading;using System.Threading.Tasks;using System.Windows.Forms;namespace WindowsFormsApp1{ public partial class Form1 : Form { Thread thread1 = null; Thread thread2 = null; ..
1.멀티쓰레드 => 작업을 병렬로 실행 가능.프로그램을 실행 시, UI Thread 실행됨. UI thread 는 싱글 쓰레드임. 여러 개의 기능들이 각 작업이 끝나면 순차적으로 다음 작업이 이뤄짐.using System.Threading;public partial class Form1 : Form{ Thread thread = null; private void Form1_Load(object sender, EventArgs e) { thread = new Thread(new ThreadStart(WorkThread)); thread.IsBackground = true; // UIThread가 종료될 때 내가 만든 쓰레드도 종료시킴. thread.Prio..
from절 뒤에 붙인다. join있으면 join 뒤에 붙인다. COLLATE Korean_Wansung_CI_AS 데이터베이스 속성에서 확인가능 일반 > 유지관리 > 데이터 정렬 Korean_Wansung_CI_AS에 대해 간략하게 설명해보면, Korean_Wansung : 한글 CI : Case Insensitive의 약자로서, 대/소문자를 구분하지 않는다. CS : Case Sensitive의 약자이면서 CI의 반대되는 것으로, 대/소문자를 구분한다. AS : Accent Insensitive의 약자로서, 악센트를 구분하지 않는다. 여기서 악센트는 언어의 높낮이를 말한다.(ex> 중국어의 성조) 그래서 결론적으로, Korean_Wansung_CI_AS는 한글이면서 대/소문자 및 악센트를 구분하지 않는..
SELECT MAX(CONVERT(Varchar(20), REG_TIME, 120) FROM TB_USER //yyyy-mm-dd hh:mm:ss CONVERT를 활용해서 날짜형식을 포맷할 수 있다. CONVERT(포맷(길이), getdate(), 반환형식) convert(varchar, getdate(), 120): "yyyy-mm-dd hh:mi:ss(24h)" 120은 날짜 및 시간 데이터 형식을 나타냅니다. ISO 8601 표준에 따라 형식화된 날짜와 시간을 나타냅니다. convert(varchar, getdate(), 20): "yyyy-mm-dd hh:mi:ss(24h)" 20은 출력되는 문자열의 최대 길이를 나타냅니다. 스타일(style)을 나타내는 것이 아니라 최대 길이를 나타내므로, 출력..
SELECT SUBSTRING(USER_ID, CHARINDEX('\', USER_ID) + 1, LEN(USER_ID)) FROM TB_USER USER_ID에는 aaa\id 형태로 데이터가 들어가 있을 때, id만 필요할 경우 ! *문자열 자르기 SUBSTRING('문자열', 시작위치, 길이) 시작 위치에서 길이만큼 문자열 자르기 *특정 문자 찾기 CHARINDEX('\', USER_ID)+1 \이후의 문자열을 가져온다. LEN(USER_ID) 문자열의 전체 길이를 가져오기 때문에, 마지막 글자까지 가져올 수 있다.
public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web API 구성 및 서비스 // Web API 경로 config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } ); } } URL 경로 처음에 만들 때는 action이 빠져있으니, action 추가하기 파라미터는 id로 넣어야 저 경로 그대로 들어간다. seq로 했다가 왜 안되지,,..

프로그램 배포 평소 개발할 때는 Debug 모드에서 작업했음. 배포할 때는 Release로 변경 하여 다시 빌드해야 함. > 파일 탐색기 -> bin -> Release 폴더가 생긴 것을 확인할 수 있다. 폴더 내 파일들을 전부 복사해서, 사용자나 고객사에게 해당 파일들을 배포하면 된다. ** .net framework가 없거나 버전이 안 맞으면, .net framework를 설치하라는 메시지가 나온다. ** .net framework이기 때문에 운영체제가 윈도우인 환경에서만 실행이 가능하다. App.config 에서 데이터베이스 접속 정보를 변경해야 할때에는, exe.config파일 -> 우클릭 -> 메모장에서 편집 클릭 config 내용들이 보여지며, 수정 가능하다. 데이터베이스 접속 정보를 원격지를..