728x90

전체 글 152

[.NET Core] AddTransient() AddScoped(), AddSingleton() 서비스 생명주기 차이 예제

서비스의 수명은 종속성이 인스턴스화되는 시기와 수명에 따라 다르며 수명은 이러한 서비스를 등록한 방법에 따라 달라집니다. 아래 세 가지 방법은 서비스의 수명을 정의합니다. AddTransient Transient 는 서비스가 요청될 때마다 새롭게 생성됩니다. AddScoped Scoped 서비스는 요청당 한 번 생성됩니다. 연결이 유지되는동안 재사용합니다. AddSingleton Singleton 서비스는 처음 요청될 때 생성되며 이후의 모든 요청은 동일한 인스턴스를 사용합니다. 예제를 통해서 서비스의 수명주기를 알아보기 위한 테스트는 WebAPI 프로젝트로 진행합니다. 서비스 생성 1. 테스트에서 사용할 Singleton, Scoped, Transient 3개의 인터페이스와 구현 클래스를 생성합니다. ..

dev/asp.net, c# 2022.11.23

[프로그래머스] 올바른 괄호 - 코딩테스트, C#

올바른 괄호 문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 입출력 예sanswer "()()" true "(())()" true ")()(" false "(()(" false 입출..

dev/코딩테스트 2022.11.22

[c#] 파일, 디렉토리 (File, Directory) - System.IO.File, System.IO.Directory

.Net 클래스에서 파일 및 디렉토리를 다루기 위해서 System.IO 의 다음 네임스페이스를 이용해 접근할수 있습니다. 네임스페이스 설명 System.IO.File 파일에 대한 정보를 가져오기 위한 정적 메서드 제공 System.IO.FileInfo 파일에 대한 정보를 가져오기 위한 인스턴스 제공 System.IO.Directory 디렉토리일에 대한 정보를 가져오기 위한 정적 메서드 제공 System.IO.DirectoryInfo 디렉토리에 대한 정보를 가져오기 위한 인스턴스 제공 System.IO.DriveInfo 드라이브 정보에 액세스 *Info 클래스는 인스턴스를 제공하고 Info 가 아닌 것은 정적 클래스를 제공하는것이 다르다. System.IO.File, System.IO.FileInfo 단일..

dev/asp.net, c# 2022.11.22

[.NET 6.0] WebAPI - Request.Body 데이터 수신 (IFormFile 파일,[FromBody] string)

.net 6 으로 API 프로젝트 작업을 진행하면서 Back End 작업중 POST 메서드에 대한 처리가 필요했다. 요구사항 1. POST 메서드로 기본적으로 csv, json 파일이 올수 있다. 2. 또는 파일의 내용을 body 에 직접 담아서 보낼수도 있다. 3. 응답 코드는 201로 응답한다. 2가지 방법으로 요청이 오기 때문에 Route를 2개로 따로 받아 처리하기로 하였다. (라우터 하나에 두가지 모두 받는 방법이 있는지는 잘 모르겠다.) File 로 받기 Post 메소드의 파라미터를 IFormFile 로 한다. [HttpPost] public IActionResult Post(IFormFile file) { // 파일을 읽어서(csv, json 에따라서 파싱) var fileContent = ..

dev/asp.net, c# 2022.11.21

[프로그래머스] 완주하지 못한 선수 - 코딩테스트, Javascript (해시)

완주하지 못한 선수 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예participantcompletionreturn ["le..

dev/코딩테스트 2022.11.21

[프로그래머스] 기사단원의 무기 -코딩테스트, C# (약수)

기사단원의 무기 문제 설명 숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다. 예를 들어, 15번으로 지정된 기사단원은 15의 약수가 1, 3, 5, 15로 4개 이므로, 공격력이 4인 무기를 구매합니다. 만약, 이웃나라와의 협약으로 정해진 공격력의 제한수치가 3이고 제한수치를 초과한 기사가 사용할 무기의 공격력이 2라면, 15번으로 지정된 기사단원은 무기점에서 ..

dev/코딩테스트 2022.11.21

[c#] Dictionary 와 LookUp 차이점

Dictionary 와 LookUp 비교 Lookup Dictionary 네임스페이스 System.Linq System.Collections.Generic 인터페이스 ILookup IDictionary 생성자 유무 LookUp : 없음 Dcitionary : Dictionary * lookup은 생성자가 없어 객체 생성시 오류 발생 Key 값의 고유 여부 Dictionary 타입은 Key 가 고유하기 때문에 중복 key 등록이 불가하나 LookUp 은 동일키에 중복 데이터 추가가 가능하다. List students = new List { new Student{grade = 3, name = "Tom", scores = new int[] {60, 80} }, new Student{grade = 3, nam..

dev/asp.net, c# 2022.11.17

[mongoDB] 몽고DB 일반적인 쉘 명령어

Mongo Shell Command show dbs: 서버의 모든 데이터베이스 목록을 인쇄합니다. use : 현재 데이터베이스를 으로 전환합니다. db: 현재 사용 중인 데이터베이스를 표시합니다. show collections: 현재 데이터베이스의 컬렉션 목록을 인쇄합니다. db.createCollection(): 새 컬렉션을 만듭니다. db.collection.drop(): 컬렉션을 완전히 삭제하거나 제거합니다. db.collection.insertOne(): 컬렉션에 새 문서를 삽입합니다. db.collection.insertMany(): 컬렉션에 여러 새 문서를 삽입합니다. db.collection.updateOne(): 컬렉션에 있는 단일 기존 문서를 업데이트합니다. db.collection.up..

Database/NoSQL 2022.11.17

[c#] LINQ 컬렉션 표준 쿼리 메서드 5 - (프로젝션, 요소) Select, SelectMany, Zip, ElementAt, First, Last, Single

컬렉션 작업을 할때 가장 많이 이용하는 함수이기도 한 프로젝션과 요소작업 컬렉션 메소드에 대해 알아봅니다. 메서드 메서드 이름 설명 C# 쿼리 식 구문 Select 변환 함수를 기반으로 하는 값을 프로젝션합니다. select SelectMany 변환 함수를 기반으로 하는 값의 시퀀스를 프로젝션한 다음 하나의 시퀀스로 평면화합니다. 여러 from 절 사용 Zip 지정된 2~3개 시퀀스의 요소를 사용하여 튜플 시퀀스를 생성합니다. ElementAt 컬렉션의 지정된 인덱스에 있는 요소를 반환합니다. ElementAtOrDefault 컬렉션의 지정된 인덱스에 있는 요소를 반환하거나 인덱스가 범위를 벗어나면 기본값을 반환합니다. First 컬렉션의 첫 번째 요소 또는 특정 조건에 맞는 첫 번째 요소를 반환합니다...

dev/asp.net, c# 2022.11.16

[c#] LINQ 컬렉션 표준 쿼리 메서드 4 - (조인, 그룹, 집계, 최대, 최소, 합계, 평균, 개수) Join, GroupJoin, GroupBy, ToLookUp, Max, Min, Count, Sum, Average

수량자, 생성 관련한 컬렉션 메소드에 대해 알아봅니다. 메서드 메서드 이름 설명 C# 쿼리 식 구문 Join 키를 기준으로 두 시퀀스를 Join한 다음 값 추출 join … in … on … equals … GroupJoin 키를 기준으로 두 시퀀스를 Join한 다음 결과를 그룹화 join … in … on … equals … into … GroupBy 공통 특성을 공유하는 요소를 그룹화 group … by group … by … into … ToLookup 키 선택기 함수에 따라 Lookup(일대다 사전)에 요소를 삽입 Aggregate 컬렉션 값에 대해 사용자 지정 집계 작업을 수행 Average 평균 값 Count 수량 Max 최대값 Min 최소값 Sum 합계 Join 키가 같은지 여부에 따라 두 ..

dev/asp.net, c# 2022.11.15
728x90