Language 20

ASP.NET Core의 폴더 구조

1. 개요 이 포스팅에서는 ASP.NET 프로젝트의 폴더 구조와 파일에 대해 상세히 알아보려고 한다. ASP.NET 애플리케이션 개발 시 필수적으로 사용되는 각 폴더와 파일에 대한 설명을 제공할 것이다. 2. ASP.NET의 주요 폴더 App_Data 데이터 파일을 저장하는 데 사용된다. 주로 데이터베이스 파일이나 XML 파일과 같은 데이터 소스를 저장하는 데 사용된다. App_Start 애플리케이션 시작 시 실행되는 코드 파일을 포함한다. 일반적으로 라우팅, 필터 설정, DI(Dependency Injection) 컨테이너 설정 등과 같이 애플리케이션을 구성하는 초기화 코드가 포함된다. Content CSS(Cascading Style Sheets), 이미지 및 기타 정적 컨텐츠 파일을 저장하는 데 사..

Language/ASP.NET 2023.06.11

ASP.NET에 대해

1. ASP.NET이란 ASP.NET은 Microsoft가 개발한 웹 응용 프로그램 개발 프레임워크이다. 이 프레임워크는 웹 애플리케이션, 웹 서비스 및 웹 페이지 개발에 사용된다. ASP.NET은 기본적으로 .NET 프레임워크에서 지원되며, C#이나 Visual Basic과 같은 .NET 언어를 사용하여 개발할 수 있다. 2. ASP.NET의 특징 (1) 서버 측 기술 ASP.NET은 서버 측에서 실해오디는 웹 응용 프로그램을 개발하기 위한 강력한 기술이다. 서버에서 애플리케이션 로직을 처리하고 클라이언트에게 결과를 제공한다. (2) 다양한 언어 지원 C#, Visual Basic등 다양한 언어를 사용하여 개발할 수 있다. 이는 개발자가 자신이 편한 언어를 선택하여 웹 애플리케이션을 개발할 수 있도록 ..

Language/ASP.NET 2023.06.11

[C#] Interlocked.Increment

1. 개요 C#으로 비동기 함수를 구현할때, 변수의 값을 증가시킬 때에 동기 함수를 구현했을때와는 다르게 Interlocked.Increment메서드를 사용하게 되어 이 메서드의 역할이 궁금해서 찾아보게 되었다. 2. Interlocked.Increment 메서드란? Interlocked.Increment 메서드는 원자적(atomic)인 증가 연산을 수행하는 메서드이다. 원자적 연산은 여러 스레드가 동시에 접근하여 값을 증가시키는 경우에도 데이터의 무결성을 보장하기 위해 사용된다. 3. Interlocked.Increment 메서드를 사용하는 이유 일반적으로 변수의 값을 증가시키는 연산은 여러 스레드에서 동시에 수행될 수 있다. 이 경우 여러 스레드가 동시에 값을 읽어 증가시킨 다음, 각각의 스레드가 업..

Language/C# 2023.05.29

[C#] Array와 List의 차이점, 각각을 어느 상황에 써야 할까?

개요 C#을 다루다 보니 배열을 사용할 때가 종종 생겼고, Array와 List를 알게되며 비슷한듯 차이점이 있는 두 컬렉션에 대해 알아보게 되던 중, 잘 정리된 외국 포스트가 있어서 직접 번역하여 포스팅하게 되었다. (원본 포스팅: https://www.shekhali.com/c-array-vs-list/) 1. Array vs List List는 요소가 추가되고 제거될 때 자동으로 크기를 조정할 수 있는 일반 컬렉션인 반면, Array는 같은 타입들의 요소에 대한 고정 크기의 순 컬렉션이다. Array C# Array: Array는 실행 중에 수정할 수 없는 고정 길이를 가진 동일한 데이터 타입의 엄격한 자료형*의 collections 이다. (*엄격한 자료형(strongly typed)란? 함수/메..

Language/C# 2023.01.28

[C#] Dictionary에 대해

1. Dictionary란? C#에서 Dictionary 클래스는 형식의 컬렉션이다. System.Collections에 정의되어 있으며 Key는 각 컬렉션에서 고유해야 한다. 이번 포스팅에서는 Dictionary 클래스의 기초적인 사용 방법 및 활용 예제를 소개한다. 2. Dictionary 클래스 사용법 2.1 클래스 사용 및 객체 생성 Dictionary 클래스를 사용하기 전에 using문에 System.Collections.Generic 네임스페이스를 추가한다. using System.Collections.Generic; Dictionary클래스는 형식이며 Key와 Value는 제네릭 유형이다. 다음은 Key가 string형이며, Value가 int형인 Dictionary객체를 생성하는 예제이다...

Language/C# 2023.01.28

[C#] 두 List가 같은지 비교하기

Except()를 사용하여 비교할 수 있다. var firstNotSecond = list1.Except(list2).ToList(); var secondNotFirst = list2.Except(list1).ToList(); 위의 firstNotSeconds는 list1에서 list2를 제외하여 리스트로 변환하고, secondNotFirst는 반대로 list2에서 list1를 제외하여 리스트로 변환한다. 그런 다음 아래와 같이 Any()메서드로 두 리스트가 비어있는지 확인하여 결과적으로 두 List가 같은지 비교할 수 있다. !firstNotSeconds.Any() && !secondNotFirsts.Any(); 이들을 다음과 같이 메서드로 구현할 수 있다. private bool getIsEqualT..

Language/C# 2022.10.30

[Python] 모듈이 있는데 No module named XXX 에러가 뜰때 점검사항

어제 오후에 있었던 일이다. 'docker'라는 디렉터리 하위에 있는 'Client' 모듈을 import해야하는 상황이었다. import Client from docker 위와 같은 형식으로 모둘을 import하는 과정에서, 내가 구성한 docker라는 디렉터리 내에 Client모듈이 있었음에도 불구하고, "No module named XXX" 에러가 발생하게 되었다 그 원인은 python의 sys.path경로에 여러 디렉터리가 잡혀있었는데, 그중 다른 경로의 docker 디렉터리를 가져와놓고서는, 'Client'모듈이 없다고 에러를 뱉은 것이다. 예를들어, [ /tmp/dir_A/docker ] temp.py [ /tmp/dir_B/docker ] Client.py 위와 같이 두 디렉터리가 있고, sy..

Language/Python 2021.11.23

[Python] sys.path에 관해

파이썬의 sys.path는 모듈을 import할 때 모듈을 찾아야 할 경로들을 저장해둔 list이다. 예를 들어 sys.path가 ['dir_A', 'dir_B', 'dir_C'] 라고 가정했을때, import client이라는 코드를 만나면 Python은 먼저 dir_A 디렉터리 내에서 client 모듈을 찾는다. 찾으면 import를 하고, 없으면 dir_B, dir_C를 검색해보고, 그래도 없으면 ModuleNotFoundError 예외를 발생시킨다. sys.path는 언제 만들어질까? - 먼저 최초 실행된 Python 스크립트가 위치한 디렉토리를 더한다. 이때 interactive shell(python or python3)으로 실행된 경우는 ''(빈 스트링)을 사용한다. - 환경 변수중 PYTH..

Language/Python 2021.11.23

파이썬 FCM연동, 앱으로 푸시알림 보내기

커맨드에서 pyfcm 라이브러리를 설치해준다. pip install pyfcm 서버 API Key를 확인하기 위해 firebase console에 접속해준다. 상단 '클라우드 메시징' 탭에서 서버 키를 확인한다. 아래는 python 코드이다. 'APIKEY' 변수에 확인한 서버 키를 넣어주고, TOKEN에는 보내고자 하는 기기의 토큰값을 넣어준다. from pyfcm import FCMNotification APIKEY = "YOUR_SERVER_API_KEY" TOKEN = "YOUR_TOKEN" # 파이어베이스 콘솔에서 얻어 온 서버 키를 넣어 준다 push_service = FCMNotification(APIKEY) def sendMessage(body, title): # 토큰값을 이용해 1명에게 ..

Language/Python 2021.10.29

파이썬 pip 패키지 다운그레이드

1. 개요 업비트에서 제공하는 웹소켓을 이용해서 실시간 가상화폐 정보를 조회하는 기능을 구현하는 중에, pyupbit모듈이 필요로 하는 websockets 모듈의 버전이 높아 웹소켓 연결이 안되는 문제가 발생했다. websockets 로컬 버전: 9.1 (정상 작동) websockets 서버 버전: 10.0 (작동 X) (base) PS C:\Users\Administrator> pip show websockets Name: websockets Version: 10.0 Summary: An implementation of the WebSocket Protocol (RFC 6455 & 7692) Home-page: https://github.com/aaugustin/websockets Author: Aym..

Language/Python 2021.10.19
반응형