내일배움캠프 30일차

Drumj·2022년 5월 31일
1

내일배움캠프

목록 보기
30/80

<오늘의 학습>

오늘은 람다를 사용해서 CRUD를 해보는 연습을 했다.

여기서 python을 통해서 mySQL을 사용하는데 실습코드에 모르는 부분이 많아서 알아보게 되었다.

pymysql을 사용.

connection = pymysql.connect(
            host=secrets['host'],
            user=secrets['username'],
            password=secrets['password'],
            db='mydb',
            charset='utf8mb4',
            cursorclass=pymysql.cursors.DictCursor
        )

위 코드를 통해서 mydb라는 데이터베이스와 연결(connect)를 했다.

user: user name
passwd: 설정한 패스워드
host: DB가 존재하는 host
db: 연결할 데이터베이스 이름
charset: 인코딩 설정

AWS Lambda 에서 시크릿키도 설정하고 뭐 이것저것 해서 ['host'],['username'] 등을 알아서 가져 오는것 같다.
우선 이렇게 DB에 연결을 하고 나서 CRUD를 해보았다.

그 중에 cursor.execute()라는 부분에 SQL이 사용되길래 궁금해서 알아보았다.

cursor.execute("select idx, title, regDate from bbs")

이런 식으로 execute() 에 사용하고자 하는 쿼리를 작성하면 되는 것 같다.

또, 다른 코드들과는 다르게 자동으로 저장되지 않아서 commit도 해줘야 한다고 하셨다.

.commit()

Insert, Update, Delete 를 사용하는 것 처럼 DB에 변경이 생기면 쿼리문 다음에 XXX.commit()을 작성해서 저장을 해주어야 한다.

이부분이 파이썬에서 사용하는 SQL문법인것 같다.
자바/스프링에서 배웠었던 JPA와 동일한 것으로 보여진다. 처음에 실습을 해야해서 CRUD에 해당하는 코드를 직접 작성했어야 했는데 위와 같은 문법들을 몰라서 작성을 하지 못했었다..

또 알지 못했던게 event[][] 이 부분인데

json.loads(event['body'])
event['queryStringParameters']['type']
event['httpMethod'] == 'OPTIONS':
paramWord = event['queryStringParameters']['word']
idx = event['queryStringParameters']['idx']

등등... 꽤나 많이 나오던 문법이고, .execute가 나오기 전이나 if,try,def 등을 선언하고 나서 나온다.

queryStringParameters 이 부분은 event['queryStringParameters']['파라미터 이름'] 이런 식으로 작성하는 것 같고, 그렇게 되었을 때 word나 idx,type을 받아오는 것 같다...

아직 정확하게 이해는 못했지만 대강

paramWord = event['queryStringParameters']['word']

paraWord 는 ['queryStringParameters']라는 이벤트고 그 중에 ['word']를 뜻한다.

라는 의미인 듯 하다;;;

문법을 알고 보니 어떤 식으로 작성해야 하는지 알긴했는데.. 직접 처음부터 작성할 수 있을까..?
여러 언어를 한번에 배우다 보니 조금 어렵다는 생각이 든다 ㅠ_ㅠ

우선 하나라도 제대로 하고 싶은데.. 다양한 관점에서 바라보는 것도 나쁘지는 않은 것 같기도???
찔끔찔끔 이해가 되고 있는데

--오늘의 한 줄--

가랑비에 옷 젖는지 모른다고 하다보면 더 공부가 될 것 같다.

1개의 댓글

comment-user-thumbnail
2022년 5월 31일

오 오늘의 한 줄 뭔가 문학적이네요 크

답글 달기