간이 NuGet 서버 앱을 만들었습니다.

몇몇 분들은 공식 NuGet GalleryASP.NET Core가 아니라 레거시 닷넷 프레임워크로 되어 있다는 사실을 알고 계실 것입니다.

NuGet 서버를 ASP.NET Core에서 재구현하는 BaGet이라는 프로젝트가 있었지만 안타깝게도 지금은 개발이 중단된 것으로 보입니다.

그래서 ASP.NET Core로 만든 간이 NuGet 서버를 만들었습니다. 말 그대로 "간이"이기 때문에 dotnet cli에서만 제대로 작동하고 아마도 비주얼 스튜디오 등에서는 아예 작동하지 않을겁니다. 사실 비주얼 스튜디오에서는 테스트조차 하지 않았습니다.

참고로 Nuxus는 “누서스” 혹은 "뉴서스"라 읽습니다.

TMI: 이게 약 12시간만에 만들었다고 한다면 믿어지시겠습니까?

6개의 좋아요

누서스라고 읽는 군요. 저는 회사사람들이 넥서스라고 해서 넥서스라고 했는데…ㅋㅋㅋ 넥서스 출신들이셔서 그런가

4개의 좋아요

회사 분들께서 아마도 Nexus를 읽으신 것 같습니다.ㅎㅎ
자바의 Maven 기반 패키지 공유에 주로 사용되지만 NuGet도 아주 잘 되기 때문에 저희 회사도 쓰고 있지요~

2개의 좋아요

발음 정하는거야 만든 사람 자유라고 생각하거든요. 고유명사니까요.

1개의 좋아요

코드 공유 감사합니다.

FP 스타일로 깔끔하니 읽기 편한 것 같습니다.
요즘 간혹 파이썬 코드를 보는데, 그것과 유사한 것 같습니다.

여쭤보고 싶은 부분이 있습니다.
제 생각에는, "간이"를 벗어나면, 아래 부분에서 성능 문제가 나타날 것 같습니다.

private static ApiKey? GetApiKey(AppDbContext db, string apiKey) {        
        return !string.IsNullOrWhiteSpace(apiKey) ? 
        //     모든 ApiKey 메모리 Load 후 Predicate 연산
        db.ApiKeys.AsEnumerable().FirstOrDefault(Predicate) : null;

        [SuppressMessage("Style", "IDE0305:컬렉션 초기화 단순화", Justification = "Consistency")]
        bool Predicate(ApiKey storedKey) {
            var keyBytes = Encoding.UTF8.GetBytes(apiKey).Concat(storedKey.Salt).ToArray();
            var hashBytes = SHA512.HashData(keyBytes);

            return Convert.ToBase64String(hashBytes) == storedKey.Hash;
        }
    }

제 생각과 달리, 실무에서 크게 문제된 적이 없어, 그렇게 쓰시는 지 여쭙는 것입니다.