해당 게시글은 개인 라이브러리가 있다는 전제 하에 작성하였습니다.

개인 라이브러리 생성에 대해 궁금하시다면 따로 포스팅 하겠습니다 :)

 

1. 누겟 갤러리 계정 생성

다음 링크에 접속하여 누겟 계정을 생성합니다.

본인이 갖고있는 마소의 계정으로 로그인도 가능합니다.

https://www.nuget.org/

 

NuGet Gallery | Home

The NuGet Gallery is the central package repository for NuGet, the package manager for .NET.

www.nuget.org

 

2. 누겟 패키지 생성 프로그램 다운로드

 

다음 링크에 접속하여 누겟 패키지 생성 프로그램을 설치 합니다.

저는 항상 최신버전으로 사용중입니다 :)

https://www.nuget.org/downloads

 

NuGet Gallery | Downloads

Available NuGet Distribution Versions Visual Studio 2017 NuGet 4.x is included in the Visual Studio 2017 installation. Latest NuGet releases are delivered as part of Visual Studio updates. Available NuGet Distribution Versions

www.nuget.org

 

3. 누겟 패키지 파일 생성

 

배포할 프로그램이 있는 경로에 다운받은 nuget.exe를 이동시킵니다.

.sln 파일이 있는 곳이 아님

cmd를 관리자권한으로 실행 후 해당 경로로 이동하여 다음 명령어를 실행합니다.

성공 메세지가 뜨면 패키지 파일이 생성된것을 확인 할 수 있습니다.

 

생성된 패키지 파일

 

4. 누겟 갤러리에 라이브러리 배포하기

 

패키지 파일 생성까지 완료되셨다면 이제 배포를 할 차례겠네요 !

누겟 갤러리 홈페이지에 접속하여 Upload에 들어가줍니다.

https://www.nuget.org/packages/manage/upload

 

NuGet Gallery | Sign In

Forgot the Microsoft account you used to sign-in?

www.nuget.org

 

패키지 파일을 업로드 시켜주면 검수 과정에 돌입합니다.

 

 

위 사진처럼 Status가 Listed로 변경되면 배포가 완료된것입니다.

Listed로 변경까지는 1분에서 5분정도의 시간이 소요됩니다.

 

이제 배포된 라이브러리(패키지)를 다운받아 제대로 동작하는지 확인하는 과정을 가져볼까요?

 

 

5. 내가 배포한 라이브러리(패키지) 다운로드 및 동작 확인

 

테스트 할 프로젝트를 생성 후 누겟 패키지 관리자에 들어가 본인이 배포한 라이브러리를 검색해 줍니다.

제가 배포했던 DaminLibrary와 Damin.Log가 잘 올라와 있네요.

설치 후 동작 확인도 해봅시다.

 

저는 로그 라이브러리를 테스트 해 보았습니다.

다음 처럼 사용하시면 될 것 같아요 :)

 

 

다행스럽게도 잘 작동하네요 !

 

도움이 되셨으면 좋겠습니다 :)

다음 포스팅에서 또 만나요

감사합니다 !

728x90

'개발 > C#' 카테고리의 다른 글

[C#] 2. 문자 뒤집기 [StringBuilder , SubString] 활용  (0) 2022.03.23
[C#] 1. C#의 시작, Hello World !  (6) 2021.06.25

 

요즘 이직 준비 때문에 코딩 테스트를 보고, 면접 후기를 많이 보고 있습니다.

면접 후기중에 문자열 뒤집기 테스트가 있었다는 글을 보고

신입 개발자분들 중에 문자열에 약하신 분들이 있으실까 강의 남깁니다 :)

 


우선 코드부터 볼까요?

 

string originString = "ABCDE"; // 기준 문자열

int length = originString.Length; // 기준 문자열의 길이

StringBuilder sb = new StringBuilder(); 
//StringBuilder는 String의 재조합보다 참조 메모리를 덜 차지함

for(int i = length-1; i>=0 ; i--) //끝자리부터 도는 이유는 문자열을 역전시키기 위함
{
	sb.Append(originString.Substring(i,1)); 
    //Substring으로 문자열을 한개씩 StringBuilder에 추가해줌
}

string result = sb.Tostring(); //다시 string 타입으로 변환

Console.WriteLine(result);

result의 값은 "EDCBA" 가 됩니다 :)

 

사실 여기서 어려워 할 부분은 Substring() 메서드의 사용이라고 생각해요.

처음 Substring() 메서드를 접했을때 오버로드가 되어있는것을 보았고

startindex와 index를 조합하여 원하는 문자열을 골라 올 수 있는걸 알았고

전 그게 string.Substring(1,3); 일경우 1번째부터 3번째 인덱스의 문자열을 잘라오는줄로만 알고있었죠

자꾸 인덱스 오류가 나고, 쌩뚱맞은 문자열을 리턴 하길래 무슨 문제인가 디버깅 해보았습니다.

 

위의 예제를 활용해서 다시 살펴볼까요?

 


 

string originString = "ABCDE";
string index = originString.Length;

//1. startIndex가 0일경우 
string result = originString.Substring(0); //result == "ABCDE"

//2. startIndex가 1일경우
string result = originString.Substring(1); // result == "BCDE";

//3. startIndex가 0, length 추가했을 경우
string result = originString.Substring(0,length); // result == "ABCDE"; (0부터 5까지 잘라왔기때문)

//4. startIndex가 1, length 추가했을 경우
string result = originString.Substring(1,length); // index오류!!!
//1부터 (B부터) 5번째 길이만큼 자르려면 originString의 length가 6이상이어야 함
//현재 originString의 전체 length는 5이므로 index 오류가 발생

//5. startIndex가 1, length가 1일경우
string result = originString.Substring(1,1); // result == "B";
//1번째 문자열 (B부터) 1번째 길이만큼 자르면 본인을 가져오게됨

//6. startIndex가 1, length가 2일경우
string result = originString.Substring(1,2); // result == "BC";
//1번째 문자열 (B부터) 2번째 길이만큼 자르면 B와 그 다음 문자열인 C를 가져오게됨

 

이해가 쉽게 여러 케이스로 나눠 정리해봤는데 이해가 가시나요?

 

질문이나 조언은 언제든지 댓글로 남겨주시면 감사하겠습니다 :)

728x90

'개발 > C#' 카테고리의 다른 글

[C#] 3. 개인 라이브러리 누겟 패키지 배포하기  (0) 2022.06.20
[C#] 1. C#의 시작, Hello World !  (6) 2021.06.25

안녕하세요! 노력하는 개발자 은다민입니다 :)

아직 저도 초라한 실력이지만, 그래도 제 주력 언어인 C#을 공부해 볼거에요!

뭔가 C라는 단어가 들어가면 거부감부터 드는 분이 많으실텐데

생각보다 세련되고 Java와 비슷하여 굉장히 재미있는 언어라고 자부할 수 있어요!

최근 많은 초보개발자들이 Java와 Python에 빠져있을때

우리는 C#이라는 멋진 언어도 함께 갖고 갑시다 :)

 


C#이란?

우선 C#이 어떤 프로그래밍 언어인지 알아보는게 우선이겠죠?

C#은 여러분들이 모두 알고있는 마이크로 소프트에서 제작되었어요.

 

1990년대 마소(마이크로 소프트)에서는 .NET(닷넷)이라는 플랫폼을 꺼내놓았어요.

.NET은 인터넷 서비스를 어떤 기기에서도 사용할 수 있게 하는 비전이 있었죠.

.NET의 개발 사업은 크게 성공하지는 못하였지만

.NET 프레임워크와 C#이라는 프로그래밍 언어가 탄생하며

웹 / 윈도우 운영체제의 기능을 쉽게 활용 가능한 클래스 라이브러리가 제공되게 됩니다.

 

처음에는 관심받지 못했던 C#은 현재까지 계속해서 많은 개발과 발전이 이루어지고 있고,

학습하기에도 어렵지 않은 언어이기때문에 갈수록 많은 사랑을 받고있는 언어입니다.

 

자 그럼 본격적으로 프로그래밍을 시작해 볼까요?

아! 다른 포스팅에서도 말했듯, 제 블로그에서는 프로그램 설치에 대한 내용은 다루지 않을 예정입니다!

저는 Visual Studio 2019 Comunity 를 사용하고 있으니 얼른 설치하고 오세용! ㅎ,ㅎ

 


Hello World!

프로그래밍을 공부하고싶어 어느정도 구글링 해보신 분들은 이 문장을 자주 봤겠죠?

현재까지 저는 3가지의 컴퓨터 언어를 공부했는데,

어떤 책을 봐도 늘 시작은 Hello World 라는 문자열을 출력하는 것이더군요!

우리도 질 수 없겠죠? 모두들 Visual Studio를 실행시켜주세요!


Visual Studio 실행 화면

이런 화면이 뜨시나요? 왼쪽에 프로젝트들은 개인적인거라 모자이크 처리했습니다 ㅠ,ㅠ 양해를..

그럼 우측 하단의 '새 프로젝트 만들기' 를 클릭해주세요!

 

새 프로젝트 만들기

아니 뭔가 굉장히 많죠? 특히 초보 개발자분들은 뭐가 뭔지

어떤 템플릿으로 C#을 시작해야 하는지 감이 오지 않으실거에요 !

앞으로 여러가지를 알려드리겠지만 저는 기본적으로

콘솔 앱(.NET FrameWork) , WPF 앱(.NET FrameWork) , Windows Forms 앱을 주로 사용하며

지금 여러분들은 템플릿 검색에 '콘솔 앱'을 검색후 콘솔 앱(.NET FrameWork)을 선택해주시면 됩니다!

 

새 프로젝트 구성

이게 마지막이에요!

저는 프로젝트 이름을 HelloWorld 라고 적었습니다.

위치는 어디든 상관없지만 꼭 폴더가 필요하니 주의해주세요!

저는 HelloWorld라는 폴더를 새로 생성하고 그 폴더를 설정해주었습니다.

솔루션 이름과 프레임워크는 가급적 건들지 말아주세요!

자 이제 준비되셨다면 만들기를 누르고 본격적인 코딩을 해보자구요!


문자열 출력 - Hello World !

프로젝트 실행 창

프로젝트를 실행하면 이런 코드가 있어요!

구성이 굉장히 생소하시죠?

namespace HelloWorld //namespace(네임스페이스)
{
	class Program // class(클래스)
    {
    	static void Main(string[] args) //method (메소드)
        {
        	//실행할 코드 입력
        }
    }
}

이런식으로 프로그램이 설계되어 있어요!

우리는 저 위 코드중

'// 실행할 코드 입력' 쪽에 코드를 입력할거에요!

 

저를 따라해보세요!

namespace HelloWorld //namespace(네임스페이스)
{
	class Program // class(클래스)
    {
    	static void Main(string[] args) //method (메소드)
        {
        	Console.WriteLine("Hello World!");
        }
    }
}

그리고 F5를 누르면!

어..? 뭔가 실행되는것 같다가 아무일도 없던것처럼 돌아오네요..?

왜냐하면 코드가 순서대로 쭉돌고 마지막 코드가 끝남과 동시에 프로그램도 종료됐기 때문이에요!

 

그럼 결과는 어떻게 확인하나요?

이럴때 디버그(Debug)를 사용합니다!

 

여기를 클릭하시면 빨간색 점이 찍히게 됩니다!

이제 다시 F5를 눌러주세요!

 

콘솔창

프로그램이 실행되고 콘솔창이 뜹니다!

우리가 원하던 Hello World ! 라는 글씨가 출력됐죠?

 

축하드려요! 여러분은 지금 C#에서 처음으로 문자열을 출력하는 코드를 직접 입력하고 출력까지 성공하셨습니다 :)

사실 실행과정 중 빌드(Build)나 위에서 했던 디버그(Debug)등 설명이 필요한 부분이 많지만

그건 다른 포스팅에서 다루도록 할게요!

 

첫 프로그래밍 축하드립니다 !

다른 포스팅에서 또 뵙겠습니다 :)

 

728x90

+ Recent posts