ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 220708_부트캠프시작_python_1주_5일차 (복기)
    bigdata_bootcamp_12th/daily review 2022. 7. 10. 18:23

    for문과 list, dict를 이용한 아파트 층 별 호수 값 출력하기

    문제 : 아래의 그림을 참조하여 한층에 2가구씩 사는 아파트를 2차원리스트 dong에 담아보세요.

    101호|102호
    201호|202호
    301호|302호
    401호|402호
    
    dong = [['101호','102호'],['201호','202호'],['301호','302호'],['401호','402호']]

    dong 이란 list에 각 2호까지 넣고 각각 층별로 호수를 출력하는 문제였다.

     

    지금 다니는 학원 건물을 보니 18층까지 있고 어떤층은 1~10호까지 어떤층은 1~2호까지 (이어진 호수를 통합하여 적어지는 경우) 있어서 기존에 쉽게 풀 수 있는 문제도 건물증축을 한다던가 옆 호실까지 합쳐 호수가 줄어든다던가 하는 문제에 대해서 생각해보았다.

     

    # 층별로 나누어 호수를 불러오는 계산
    
    for i in range(0, len(dong)) : # 동별로 '층' 수 계산 
        ho = (len(dong[i]))        # 각 층에 있는 '호' 수 계산
        for j in range(0,ho) :     # 층 별 '호' 수 만큼 반복
            print(dong[i][j])      # 각 층별 '호' 수 출력
        print('-----')             # 반복이 끝나면 마무리
    
    
    
    # 강사님의 원래 의도
    
    for i in range(0, 3):
        print(dong[i][0])
        print(dong[i][1])
        print('-----')
        
        
    
    두 가지 코드의 출력은 사실 차이가 없다.

    401호

    402호

    -----

    301호

    302호

    -----

    201호

    202호

    -----

    101호

    102호

    -----

     

     

    여기서 의문이 들었다.

     

    하드 코딩과 소프트 코딩

    좋은 코딩은 무엇일까?

    같이 수강하고 있는 동기들 중 친한 몇명과 대화를 나눠 봤다.

    A : 짧은 코딩 아닐까요?  아무리도 코드의 길이가 짧을 수록 속도면에서 차이가 좀 있으니까요.
    B : 저도 짧은 코드로 운영되는 코딩 같아요 이유는 A님이 말한 것과 같습니다.

    하드 코딩 vs 소프트 코딩 둘 중에는 뭐가 더 좋을까요?

    A : 소프트 코딩 인 것 같아요 아무래도 다양하게 데이터를 받는 시대에 추가되는 데이터까지도 자동화 될 수 있게
    만들어 준 다는 것이 메리트가 있고 일일히 세어봐야 하는 하드 코딩보다 더 노동력도 덜하고 좋아보입니다.
    B : 소프트 코딩은 하드코딩을 여러번 하지 않게 만드는 다음 버전같은 느낌이라 소프트 코딩일 것 같아요.

     

    아직 길지는 않은 경험으로만 봐도 하드 코딩에 비해 소프트 코딩이 더 좋아보이는 것은 사실이다.

    하지만 하드코딩이 비교적 코드 사용이 적고 소프트코딩이 자동화를 위한 변수 및 계산식을 추가하여

    상대적으로 하드코딩보다는 길이가 길다는 생각을 하게 되었다.

     

    동기 A,B 님들의 의견을 다 묻고 셋이 같이 머쓱했다. 답변을 했지만 모순에 도달하였다는 것을 느꼈기 때문이다.

     

    관점의 차이

    소프트 코딩이라는 발전된 형태를 가지고도 하드코딩을 동시에 사용하는 이유는 하드코딩만의 장점이 있다고 생각했다.

     

     

    "속도"

     

    그렇다. 코드가 간결하고 가독성이 좋으며 속도가 좋다.

    반면에 보안이 약하고 유지보수가 힘들다.

     

    == 보안과 유지보수가 필요없는 간단한 코드는 하드코딩을 하는 것이 좋다.

     

    어디에 쓰일까?

    '절대로 변하지 않는 값' 에 많이 쓰인다고 한다.

    원주율 등..

     

    개인적으로는 규칙을 정의하는 곳에 쓰이면 좋을 것 같았다.

    카드 60여장이 있는 게임의 카드 수를 정의할 때나, 일정 시간이 되면 변경이 되는 신호등이라던가

    생각보다 쓰임새를 찾으면 많을 것 같았다.

     

    좋은 코드는 보다 알맞은 장소에 쓰이는 코드가 아닐까 생각해본다.

     

Designed by Tistory.