본문 바로가기

반응형

Programming

(91)
SJF scheduling 최단 작업 우선 스케줄링 의미 : SJF(Shortest Job First) - 작업시간이 가장 작은 작업부터 처리하는 스케줄링 기법. 시작 : 기본 스케줄링 기법인 FCFS(First Come First Served)의 단점(대기시간이 길어질 수도 있음)을 보완한 스케줄링 기법. 특징 : 작업시간이 작은 작업을 우선적으로 처리하므로 자연스럽게 뒤에 남아있는 작업들의 대기시간이 줄어든다. 동시에 작업시간이 긴 작업들은 처리되지 못하는 기아상태(starvation)가 발생할 수 있다. 실제환경에선 적용이 어렵다는 특징이 있다. (처리해야 할 작업들의 작업시간을 모두 알고 있다는 가정하에 가능한 스케줄링인데 실제론 요청이 들어오기 전까진 작업시간을 알 수가 없으므로) 선점/비선점 방식 모두 구현 가능하다. 선점방식으로 구현한 SJF..
C# loop For vs Foreach 반복문 작성 시 For와 Foreach 어떤 것을 사용하는 것이 좋을까? 당연하게도 정답은 상황에 따라 다르다 이지만 개인적으로 실제 프로젝트에선 Default로 Foreach를 알고리즘 풀이에선 Default로 For를 사용하는 편이다. 이렇게 사용하는 가장 큰 이유는 Foreach의 경우 확장성, For의 경우 속도가 빠르기 때문이다. 아래는 각각의 장단점이다. Foreach 장점 : 다양한 컬렉션 유형에서 동작하는 코드를 짤 수 있음 (확장성) public void Write(IEnumerable somethingToWrite) { foreach (var item in somethingToWrite) { Console.WriteLine(item); } } 보다 직관적 보다 간결한 코드 단점 inde..
C# LINQ Count와 loop 속도 비교 평소 LINQ를 애용하는 편이다. 직관적이고 담당하는 실무에서 탐색이나 정렬의 속도는 크게 중요하지 않기 때문이다. 최근 알고리즘 문제풀이를 하면서 로직의 일부에 자연수를 이진수로 바꾼 뒤 1의 개수를 세야 할 일이 있었다. 더보기 292 -> "100100100" -> 3개 83 -> "1010011" -> 4개 Count 함수를 이용해 아래와 같이 작성 후 테스트를 돌렸는데 절반 정도가 효율성 테스트에서 실패했다. return Convert.ToString(num, 2).Count(d => d == '1'); 다른 곳은 수정할만한 곳이 안 보여 loop문을 사용하도록 수정 후 테스트했더니 모두 통과했다. var count = 0; var binary = Convert.ToString(num, 2); ..
MSTest vs NUnit compare unit test framework .NET .NET 환경에서 사용할 수 있는 대표적인 유닛 테스트 프레임워크 두 가지 간단 비교 MSTest vs NUnit 공통점 .NET Framework를 타겟으로 한다. Unit Test를 목적으로 한다. SUnit(Smaltalk's testing framework)로 부터 유래되었다. Group fixtures를 지원한다. Data generator를 지원하지 않는다. Mocks 서비스를 지원한다. (서드파티 라이브러리를 설치해야 함) 차이점 MSTest CC BY 3.0 라이센스를 따른다. MS 기술을 사용하는 시스템에 보다 최적화되어있다. 업데이트가 상대적으로 적다. (VS 버전당 하나) 느리다는 평이 많다. Reflection을 지원한다. NUnit MIT 라이센스를 따른다. 오픈소스 프레임워크이다..
Database transaction Isolation level 트랜잭션 격리수준 정리 Isolation level(격리 수준) 이란? 어떤 트랜잭션이 다른 트랜잭션에서 변경한 데이터를 어떤 수준으로 볼 수 있도록 하는지에 대한 레벨이다. 격리 수준에는 4가지 레벨이 존재한다. (아래로 내려갈수록 격리 수준은 강해지고 동시처리능력이 떨어진다.) Read Uncommitted Read Committed Repeatable Read Serializable Read Uncommitted COMMIT되지 않은 데이터에도 접근이 가능한 수준이다. Dirty Read가 발생할 수 있다. Read Committed COMMIT 된 데이터에만 접근할 수 있는 수준이다. NON REPEATABLE READ가 발생할 수 있다. 대부분의 RDB에서 기본값으로 사용하고 있다. Repeatable Read 트랜잭..
Nuget Package Publish 시나리오 : .Net Standard 프로젝트를 패키징하여 nuget.org에 게시 0. (최초 1회 필요) nuget.org 회원가입 및 API Key 발급 ref : https://docs.microsoft.com/ko-kr/nuget/nuget-org/publish-a-package#create-api-keys 1. .nupkg file 준비 코드 수정 [프로젝트 우클릭 - 속성 - 패키지]에서 버전 올리기(패키지 버전 + 필요에 따라 어셈블리 버전, 어셈블리 파일 버전) [프로젝트 우클릭 - 팩] 수행 후 bin/debug 경로(혹은 지정 경로)에 .nupkg file 생성 확인 2. .nupkg file 게시 Visual Studio에서 패키지 관리자 콘솔(Package Manager conso..

반응형