H은행에서 만난 모든 惡의 근원

H은행에서 만난 모든 惡의 근원

이철우

2021년 창구업무를 지원하는 기업전용 프로그램을 H은행에서 보게 되었다. Visual Studio 2008 C#으로 개발되었다고 한다. 아마도 2010~2015년 사이에 탄생하지 않았을까 추측한다. 20세기에 COBOL 등을 필두로 전산분야에서 앞서 나갔던 은행의 실력은 21세기에 어떻게 변했을까 궁금하기도 했다. 결과는 아래와 같다.

void Print(Dictionary<string, string> argument)
{
    var name = argument["Name"];
    var age = int.Parse(argument["Age"]);

    Console.WriteLine($"{name} {age}");
}

대부분의 메서드 매개변수가 '사전’으로 되어 있었다. 구조적 프로그래밍 시절에도 없던 '신기’한 코드가 파일마다 만발하고 있었다.

이것은 적어도 다음과 같이 바꾸어야 한다.

void Print(string name, int age)
{
    Console.WriteLine($"{name} {age}");
}

만약 name, age 쌍을 자주 쓰게 된다면, 다음과 같이 되어야 한다.

void Print(Person person)
{
    Console.WriteLine($"{person}");
}

class Person
{
    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }

    public string Name { get; init; }
    public int Age { get; init; }

    public override string ToString()
    {
        return $"{Name} {Age}";
    }
}

사전 매개변수는 파이선 등의 언어에서도 유행[참고 1]한 듯 하다. 전산 시스템 유지/보수에 돈이 낭비되고 있음을 은행 경영者가 알까?

[참고 1] Taking a dictionary as an argument is the root of all evil

https://www.reddit.com/r/Python/comments/jp0x4d/taking_a_dictionary_as_an_argument_is_the_root_of/

6 Likes

이상과 실무는 또 달라서
모든 코드는 각자의 사연과 역사가 있는 거겠죠

딕셔너리도 어떤 사람은 찬양하는 사람도 있음

딕셔너리 흑마술서

4 Likes

흑마술서라는 표현에서 빵터졌습니다 ㅋㅋㅋ

4 Likes

으아악…

2 Likes

문제없다는건 아니지만 애교수준이네요, 간결해진 코드들의 모습은 비슷하게 수렴하지만, 자유로운 영혼들이 열정적으로 작성한 코드의 품질은 상상을 뛰어넘습니다. 바닥밑에 바닥이예요

4 Likes