ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TIL 2023.04.03
    내일배움캠프 2023. 4. 3. 21:11

    오늘 처음으로 페어 프로그래밍이란 걸 해봤죠.

    세 문제 풀었는데 두 문제는 아직도 남들 풀이가 이해가 안되고,

    하나는 이진법에 관한 문제였는데 새로운 걸 알게 되었답니다.

     

    우선 문제구요.

    저는 이진법을 십진법으로, 십진법을 이진법으로 변환하는 함수를 알지 못했습니다.

    그래서 또 무식하게 풀었는데요.

    2의 n제곱들을 나열한 리스트를 만들고

    bin1, bin2로 들어온 인자의 각 자리수에 그 리스트를 곱해주는 것으로 이진법을 십진법으로 변환했습니다.

    def solution(bin1, bin2):
        bin_ = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
        sib1 = 0
        sib2 = 0
        for i, num in enumerate(bin1[::-1]):
            sib1 += (int(num)*bin_[i])
        for i, num in enumerate(bin2[::-1]):
            sib2 += (int(num)*bin_[i])
    
        return bin(sib1 + sib2)[2:]

    이렇게 말이죠.

    그 후 이진법 함수도 있다는 것을 알게 되어서

    십진법을 이진법으로 바꾸는 건 함수를 사용해 해결했습니다.

     

    그래서 오늘 작성할 내용은 이진법 관련 함수입니다.

     

    파이썬에서 이진수를 표현하는 방법은 숫자 앞에 접두어 0b를 붙여주는 것입니다.

    0b101 -> 5

    0b1010 -> 10

    이런식으로..

     

    파이썬 내장 함수 bin()을 이용하면 십진법을 이진법으로 변환할 수 있습니다.

    bin(5) -> "0b101"

    bin(10) -> "0b1010"

    이때 반환값은 문자열입니다.

     

    그렇담 bin 함수로 변환한 문자열을 어떻게 다시 십진법으로 변환할까요?

    평소에 문자열을 정수로 변환할 때 많이 사용했던 int() 함수를 이용해주면 됩니다.

    int() 함수에 진수의 base 값을 추가 인자로 넘겨주시면 됩니다.

    int("101", 2) -> 5

    int("0b101", 2) -> 5

    이렇게 쓰면 됩니다.

     

    format() 함수를 이용하면 접두어를 제외할 수 있습니다.

    format(10, "b") -> "1010"

     

    앞에 #을 붙여주면 접두어를 포함할 수도 있습니다.

    format(10, "#b") -> "0b1010"

     

    그렇담 위의 문제의 답안을 이렇게 줄일 수 있겠죠?

    def solution(bin1, bin2):
        sum = int(bin1, 2)+int(bin2, 2)
        return format(sum, 'b')

    하하

     

     

     

     

     

     

    그리고 장고 기초 과정이 시작됐는데요

    오늘 배운 거 좀 정리 할게요

    • 용어 정리 - 클라이언트 / 서버 / API
      • 클라이언트 : '요청을 보내는 곳' 이라고 생각 하시면 됩니다. 주로 '나', '내 컴퓨터' 혹은 '크롬'을 클라이언트라고 얘기 합니다.
      • 서버 : '요청을 받아서 응답 해 주는 곳' 이라고 생각 하시면 됩니다. 우리가 인터넷에서 웹페이지, 로그인등의 행동을 하고 난 후에 이루어지는 많은 과정들을 처리 해 줍니다.
      • API : 데이터를 어떻게 주고 받자! 라고 정한 약속 이라고 생각하시면 됩니다.

     

    장고의 MVT 패턴

    MVT패턴은 장고가 일하는 방식을 보여줍니다! 하나하나 다 외우지 않아도 되지만, 그림을 보면서 흐름을 파악하면 앞으로 개발을 하는 데에 많은 도움이 될 것이라고 자신합니다!

    • M (Model)
      • 데이터베이스의 모델 (ORM)
      • 저장되고 사용되는 데이터의 형태
    • T (Template)
      • 사용자에게 보여지는 부분
      • 화면
    • V (View)
      • 실질적으로 프로그램이 동작하는 부분
      • url을 요청하고 응답하는 그 사이에 일어나는 '서비스'들이 존재하는 곳

     

    ORM이란?

    Django의 ORM은 Python으로 데이터베이스 클래스 모델을 만들고, 만든 모델을 바탕으로 자동으로 데이터베이스를 다룰 수 있도록 도와줍니다.

    흔히 '쿼리'(데이터베이스를 다루기 위해 사용하는 언어) 라고 하는 부분들을 작성 하지 않아도 되는 것 입니다!

     

    장고 프로젝트를 만들면 기본적으로 세팅이 되어있습니다.

    이 중에서 settings.py 와 urls.py를 많이 다루게 됩니다.

     

     

    '내일배움캠프' 카테고리의 다른 글

    TIL 2023.04.05  (0) 2023.04.05
    TIL 2023.04.04  (0) 2023.04.04
    WIL 내일배움캠프 3주차  (0) 2023.03.31
    TIL 2023.03.31  (0) 2023.03.31
    TIL 2023.03.30  (0) 2023.03.30
Designed by Tistory.