시계열로 설정 후 데이터는 Bson 계열로 넣게 되는데, 이때 c#에서는(이미 collection까지 연결확인 됐다고 치고)

json형식인
{
key1 : value1,
key2 : value2
}

의 형태로 bson을 구성하면 된다.

일단 시계열일때 time의 값을 'time'으로 설정하고 C#의 DateTime 형식을 그대로 사용할수 있는데 아래의 코드처럼

이후 collection.InsertOne(doc); 호출

하면 데이터가 완성된다.

그리고 key1, key2로 표현되는 데이터 쪽은 리스트나 배열일 경우 BsonArray 등으로 json의 형태처럼 그대로 구성하면 된다. 

 Compass에서 Add Data를 하면 나오는 창에서 기본적으로 objectID만 설정된 상태일텐데 여기서,

가장 기본적인 대화창

Collection의 TimeField를 "ts"로 정했다면 아래와 같이 ts 값을 넣어주면 된다.

그렇게 데이터가 입력되면 아래와 같이 기록이 된다

documents의 화면

이렇게 데이터를 넣으면 된다

API 서비스 를 위해 구현중인데
초기에는 잘 연결되던 DB접속정보중 ConnectionString에 설정한 Password가 사라지는 현상이 발생했다.

그래서 DB내 SP 호출하는데 DB연결이 안되니 에러를 뱉는것이었다.

그래서 찾아보니 

https://stackoverflow.com/questions/12467335/connectionstring-loses-password-after-connection-open

 

ConnectionString loses password after connection.Open

i'm using ADO.NET to get some information from the database on a server, so this is what i do: string conStr = "Data Source=myServer\SQLEXPRESS;Initial Catalog=DBName;User ID=myUser;Password=myPas...

stackoverflow.com

당연히 오버플로에 있었고,

https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlconnection.connectionstring?redirectedfrom=MSDN&view=netframework-4.7.2#System_Data_SqlClient_SqlConnection_ConnectionString 

 

SqlConnection.ConnectionString Property (System.Data.SqlClient)

Gets or sets the string used to open a SQL Server database.

docs.microsoft.com

해당 내용에 대한 MSDN,

즉, ConnectionString에 포함되는 키들 중에
Persist Security Info=true;
이걸 넣어야 된다는 것이었다. 즉, 생략하면 기본적으로 false이고, 이는 나중에 Password를 지운다라는 것이었으므로 시간이 지나 API를 다시 호출해보면 Password만 사라지는 현상이 있었던 것이다.

보안관련 이슈는 있을 수 있으니 관련 포스트들을 확인해야한다.

ps. MSDN을 다시한번 확인해보기

  • EndPoint List
    • 기존에 서비스하던 API들의 목록 작성
    • 통합 및 간결화, API 리스트 정리
    • 계속 서비스해야 할 것과 숨기거나 삭제해야할 것들에 대한 API 리스트 정리
  • Error Code
    • 정리되지 않은 에러 목록 정리
    • TDD
      • TDD 코드 작성을 위한 에러코드 정리
      • TDD 중 나오는 추가되지 않은 코드들의 목록 정리
    • 고객의 예외처리를 위한 에러코드 및 메시지 정리
  • Instance
    • endpoint 별로 동작하는 클래스들의 lifecycle 관리

 

 

계속 수정중......

Reference : ASP.NET Core 애플리케이션 개발 p.355. <표 14-1> ASP.NET 서비스 컨테이너 수명 옵션

Transient 서비스가 요청될 때마다 새 인스턴스가 생성된다. 경량 서비스에 이 수명을 사용한다.
Scoped 단일 인스턴스가 HTTP 요청당 생성된다.
Singleton 단일 인스턴스가 첫 번째 서비스 요청이 발생할 때 생성된다.
Instance Singleton과 유사하지만 인스턴스가 StartUp에서 컨테이너와 함께 등록된다

등록할때 LifeCycle을 고민해야하는데, 일종의 전역으로 항상 떠있어야 하는 클래스는 Instance로 등록하고, 그 외는 알아서 맞춰서 가는게 좋을듯.

(.Net 5에서는 Instance 옵션이 없다....그럼 Singleton으로 써야한다는건데 확인필요..)

컨테이너를 사용할꺼면 위를 고려해야하고, 그게 아니면 동작마다 생성하던지.

문제는 메모리 사용 및 성능 개선에 대한 고민이 필요할때면 이를 고려해야할 듯 하다.

'개발 > Server-BackEnd' 카테고리의 다른 글

[C#] ConnectionString Password 증발현상  (0) 2021.07.08
OpenAPI - 설계  (0) 2021.02.07
VS2019-Docker-SwaggerUI 경로 문제 바로 잡아주기  (0) 2021.02.04
알람 봇  (0) 2021.01.11
API - Status  (0) 2020.12.28

vs2019에서 docker에 올릴 api를 .net 5등으로 만들어 빌드해서 실행하면 그냥 

https://localhost:0/swagger

로 나와서 일일히 다시 수정해서 확인해야할때가 있다.

그럴때는 

솔루션탐색기에서

launchSettings.json을 열어보면 아래쪽에 "Docker"쪽 설정부분이 있고,

여기서 launchUrl이 실행시 swagger가 뜨는 경로가 되는데 이부분에 Scheme가 https, ServicePort가 port number이다.

아래에 useSSL을 false로 (http로 붙겠다는 뜻)

그리고 httpPort를 특정포트(docker 옵션상의 포트로 설정하는것이 좋다. 기본은 49157인가?)

이렇게 해서 수정을 해주면 바로된 경로로 실행시 swagger가 출력된다

'개발 > Server-BackEnd' 카테고리의 다른 글

OpenAPI - 설계  (0) 2021.02.07
[asp.Net core]컨테이너 수명 옵션  (0) 2021.02.07
알람 봇  (0) 2021.01.11
API - Status  (0) 2020.12.28
API - Return 구분  (0) 2020.12.28
  • 서버 데본이나 배치 프로세스가 서버내에서 동작
    • 상위 서버로 메시지를 전송?
    • UDP로 비연결성으로 가능한가?
  • 일정 시간 동안 신호를 받지 못할때 
    • 메시지를 전송?
    • 슬랙 봇이나 텔레그램 등으로 메시지 전송이 가능할까?
    • 그 알람 봇이 문제가 생기면??

'개발 > Server-BackEnd' 카테고리의 다른 글

OpenAPI - 설계  (0) 2021.02.07
[asp.Net core]컨테이너 수명 옵션  (0) 2021.02.07
VS2019-Docker-SwaggerUI 경로 문제 바로 잡아주기  (0) 2021.02.04
API - Status  (0) 2020.12.28
API - Return 구분  (0) 2020.12.28
  • 현재의 API 서비스들의 상태를 보여주는 API Status Window
  • 상태분류
    • 정상/지연/응답없음(오류)/이용시간아님/...
    • 응답시간(배치를 통해 기준단위로 응답시간을 저장하여 출력)
    • 위 상태가 최종 저장된 '최종 업데이트 시간' 출력

 

'개발 > Server-BackEnd' 카테고리의 다른 글

OpenAPI - 설계  (0) 2021.02.07
[asp.Net core]컨테이너 수명 옵션  (0) 2021.02.07
VS2019-Docker-SwaggerUI 경로 문제 바로 잡아주기  (0) 2021.02.04
알람 봇  (0) 2021.01.11
API - Return 구분  (0) 2020.12.28
  • 응답코드
    • 요청에 대한 상태 : HTTP의 상태코드
    • 에러에 대한 정보 : 에러코드
      • 위 200 코드 이외의 에러에 대한 정보를 리턴
      • 코드와 (상세)메시지로 구현
        • (내부적으로 설정된)상세 코드 추가 출력
      • 에러에 대한 내부 코드 스펙이 정해져 있어야 함
        • 다른 서비스들(카카오, 네이버 등등)을 참고하여 예외상황을 미리 추가하여 구분해 놓는것이 좋음

 

'개발 > Server-BackEnd' 카테고리의 다른 글

OpenAPI - 설계  (0) 2021.02.07
[asp.Net core]컨테이너 수명 옵션  (0) 2021.02.07
VS2019-Docker-SwaggerUI 경로 문제 바로 잡아주기  (0) 2021.02.04
알람 봇  (0) 2021.01.11
API - Status  (0) 2020.12.28

+ Recent posts