Blog blog = new Korea()

스파르타코딩클럽

Today I Learned[스파르타코딩클럽] 내일배움캠프: 46일차 TIL

newkr 2021. 10. 29. 00:58
728x90

#코딩 개발일지 시작의 TMI📢

 처음으로 서버리스 강의를 제대로 참여했다. 전날 새벽 5시 넘어서 자서 강의 때 졸지는 않을까 걱정이 많이 됐으나 걱정이 무색할만큼 할 것이 많아서 졸 시간이 없었다....
 근데 에러 해결이 안돼서 진짜 열이 뻗친다..🤬

 생활패턴 : 평일 기준 - 매일 6시 기상, 운동 후 체크인 ~ 23시부터 TIL 작성, 24시 취침
               주말 기준 - 기상은 자유.. 운동 및 여가시간 활용 후 체크인 ~ 23시부터 TIL(WIL) 작성, 24시 취침

# 오늘 한 일✅

  1. 서버리스 강의 수강 🎉
    • EC2의 한계
      • EC2 인스턴스로 백엔드를 구성하면, 직접 관리를 해주어야 한다.
      • os 업데이트, 디스크 용량 조절 등이 포함되며, 1개의 ec2만을 사용할 때는 큰 문제가 없으나, 서버 증설로 인해 ec2 인스턴스가 대폭 증가하면 사람이 수행할 수 없는 작업이 된다.
    • EC2 한계 극복을 위한 서버리스 개념 등장
      • 서버리스란? 클라우드를 통해 서버를 빌려쓰는 형태 > 서버를 관리해주는 형태까지로 발전한 개념
      • 서버 관리에 들어가던 공수를 오로지 개발에만 쏟을 수 있다는 장점이 있음.
      • 단, 요금이 만만치 않음.
      • 백엔드 서버리스의 경우 AWS에서는 Lambda가 이를 제공함.
    • Lambda vs 레거시
      • Lambda = 백엔드계 S3, 기본적으로 하나의 함수를 실행함.
      • 기존 방식인 레거시는 app.py 등에 모든 API를 담아 전체를 배포하는 과정이었다.
      • Lambda를 통해 필요한 API를 개별적으로 개발할 수 있는 환경이 구성되어 효율적인 관리가 가능함. (필요할 때만 함수가 호출되기에 비용이 절감되며, 인프라 관리가 필요없음.)
      • 단, 최대 10GB까지의 메모리로 제한되며, 오랫동안 실행하지 않으면 추후 딜레이가 발생함. 또한, 동시성 제약이 있음. 각 리전별 1000개의 요청까지만 처리가 가능.
    • Lambda 실습
      • 진짜... 오늘 강의 실습 다 괜찮았는데.. Lambda 실습하다가 울화통 터질 뻔했다. 코드도, 설정도 다 정상인데 왜 안되는 것인가...? 나만 안되는 것이라 생각했는데, 나와 동일한 상황의 동료분들이 2~3분 정도 더 계셨다. 하지만, 머리를 맞대고 찾아도 도저히 찾을 수가 없어서, 결국 오늘 내에 해결하는 것은 포기했다..
      • 에러내용
        import json
        import boto3
        import pymysql
        
        
        def db_ops():
            try:
                connection = pymysql.connect(
                    host='데이터베이스 엔드포인트',
                    user='유저네임',
                    password='비밀번호',
                    db='데이터베이스 이름',
                    charset='utf8mb4',
                    cursorclass=pymysql.cursors.DictCursor
                )
        
            except pymysql.MySQLError as e:
                print("connection error!!")
                return e
        
            print("connection ok!!")
            return connection
        
        
        def lambda_handler(event, context):
            body = json.loads(event['body'])
            conn = db_ops()
            cursor = conn.cursor()
            cursor.execute("insert into board(title, content) value('" + body['title'] + "', '" + body['content'] + "')")
            conn.commit()
        
            return {
                "statusCode": 200,
                "body": json.dumps({
                    "message": "success",
                }),
            }
        
        # 이와 같은 코드를 실행하니, 오류가 발생했다. (아래는 오류코드)
        # {
        #  "errorMessage": "'body'",
        #  "errorType": "KeyError",
        #  "requestId": "...",
        #  "stackTrace": [
        #    "  File \"/var/task/lambda_function.py\", line 26, in lambda_handler\n    body = json.loads(event['body'])\n"
        #  ]
        #}
        
        
        # 아무리 찾아봐도 이 문제를 해결할 수 있는 그 어떤 힌트도 얻을 수 없었고, 주변 사람들도 모두 헤매고 있었다...
        # 제발 원인이라도 좀 알려주라고.... 열받아 죽겠네..​
    • RDS
      • AWS에서 제공하는 서비스인 RDS는 SQL 데이터베이스를 이용하는 서비스이다.
      • 정상적으로 스키마를 만들고, 설정도 완료했으나 Lambda에서 에러가 나서 데이터를 추가해보지는 못했다... ㅂㄷㅂㄷ..... 내일은 부디 에러를 해결할 수 있기를...
  2. 파이썬 vs 자바 간단 정리
 

[내 맘대로 적는] 파이썬 vs 자바

(우선, 아래에도 밝히지만 본 글은 철저히 개인적인 사견만을 담은 내용으로 올바른 정보를 얻기에는 마지막에 링크를 걸어둔 부분을 참고하면 좋다.) 💻 파이썬 : 인터프리터 언어 장점 상대적

codari.tistory.com

# 오늘의 이슈/고민, 아쉬운 점 그리고 해결한 내용

  1. 과제..못함..😢
    • 과제를 할 시간이 없다.. 배우기도 바쁘고 강의 내용을 습득하는 것도 바쁘다.. 주말에 시간내서 진행해봐야겠다.
  2. 자바 문법 미완강..😢
    • 마찬가지로 시간적 여유가 부족해 진행하지 못했다. 내일도 아마... 어렵겠지..? 강의 내용만 해도 습득하기 상당할 것으로 보인다.. 그래도 되도록 노력해보자!

# To-do List📝

  1. 자바 기초 문법 강의 완강 및 복습 (남는 시간과 주말 이용) - 내일은 객체지향 관련 문제풀기!
  2. 알고리즘 강의 완강 (주말 이용)
  3. 틈틈히 파이썬으로도 작업해보기 (주말 이용 + 알고리즘을 짜볼까?)
  4. 파이썬 기초 문법 카테고리 생성 후 정리하며 강의 복습하기(다음 주(?) 주말 이용)
  5. 자바 기초 문법 카테고리 생성 후 정리하며 강의 복습하기(주말 이용)
  6. 꼭 해야할 것! 📌 : 정신차리기!!!!!!!!!!!!!!! 정신차리자. 남은 시간이 많지 않다. 그 안에 나는 꼭 개발자가 되어야만 한다.
  7. 강의 과제 하기(주말 이용)
728x90