본문 바로가기

활동/SK네트웍스 Family AI 캠프 2기

SK네트웍스 Family AI 캠프 2기 : 3rd week (5월 5주차) + 5월 회고

3주차는 참으로 많은 일들이 있었어요.

처음 친해졌던 사람들과 함께 놀러 간 일도 있었고, 새로운 자리로 이동까지 했거든요!

 

게다가 일주일이라는 짧은 시간 내에 DB와 웹 크롤링까지 배워서 정신이 살짝 혼미해졌답니다...

이전에 살짝 배웠던 내용이라 방심하고 있었는데, 잊고 있던 개념이 생각보다 많다는 걸 다시 느꼈어요.

아마 비전공자 분들은 더 힘드셨을 거라는 생각이 들더라구요...

 

같은 기수 분들 중에서... 모르는 내용이 있으신 분들은... 제게 편하게 말 걸어 주세요!

물론 저도 아직 공부해야 할 내용들이 많긴 하지만, 제가 도울 수 있는 부분에 한해서 최대한 돕겠습니다 ^_^

 

제가 알고 있는 내용을 타인에게 전달하다 보면, 저 역시 그 과정에서 새롭게 알게 되는 것들이 있더라구요.

서로 윈윈 관계니까 말 편하게 걸어 주세요~!

 

 

● 성취

강사님께 수업을 들으면서 제 공부법을 수정 및 보완해 나가고 있습니다!

사실 저는 귀차니즘이 심한 편이라서... 새로운 용어를 보면 표기만 익히고 풀어서 작성한 뜻까지 익히지는 않았거든요...

 

예를 들어 http라는 용어를 새로 배웠다고 가정해 볼게요.

기존에는 '아하! http라는 게 있구나~' 선에서만 끝냈는데, 지금은 '아하! http는 HyperText Transfer Protocol의 약자로, 링크로 서로 연결된 하이퍼텍스트라는 것을 전달하는 통신 규약이구나~' 형태로 받아들여서 공부하고 있어요.

 

이렇게 공부하니까 확실히 머리 속에 기억이 오래 남더라구요.

모든 공부를 외워서 할 필요는 없지만, 최소 단위 내용 만큼은 잘 기억해야 한다는 것을 매일매일 체감하고 있습니다 ㅎㅎ

 

수학에서도 모든 내용을 다 외우지는 않지만, 공리나 정의를 먼저 외운 후에 이를 바탕으로 새로운 내용을 유도하여 정리를 만들어내는 것처럼요.

다른 공부에서도 마찬가지인 것 같아요! 

 

'반드시 외워야 하는 것'과 '외우지 않아도 충분히 유도 가능한 것'을 분간하고, 외워야만 하는 내용은 확실하게 익히는 것이 장기적인 관점에서 봤을 때 엄청난 효율을 가져다 주더라구요.

 

세상에 공부 잘하는 사람들이 워낙 많아서 제 입으로 공부 이야기를 하는 것이 부끄럽지만, 과거의 제가 알았으면 좋았을 것 같다는 생각이 많이 듭니다 :)

 

 

● 학습 (제 인상에 깊었던 내용을 주로 정리했습니다.)

# DB와 DBMS

DB는 DataBase의 약자로 데이터를 저장하는 공간을 의미합니다.

DBMS는 DataBase Management System의 줄임말로 DB를 관리하는 소프트웨어를 뜻합니다.

DB가 추상적인 개념이라면, DBMS는 추상적인 개념을 관리하는 실체라고 생각하니 편하더라구요.

 

# SQL

SQL은 Structured Query Language를 의미해요.

이번 수업에서는 정형 데이터와 RDBMS(Relational DataBase Management System)을 배웠기 때문에 SQL을 사용했어요.

SQL을 사용하면 정형 데이터 추출 및 관리가 편해진답니다.

구조화된 형태를 띄고 있는 정형 데이터를 다룰 때에는 구조화된 쿼리 언어인 SQL을 사용한다고 기억하면 좋아요!

 

# Regular Expression

방대한 데이터들 사이에서 자신이 원하는 데이터를 찾아야겠지요?

그럴 때 쓰는 것이 바로 Regular Expression(정규 표현식)입니다.

정규 표현식에는 다양한 규칙이 존재하는데, 가끔씩 기억나지 않을 때마다 인터넷에 검색해 보곤 합니다...^^

저는 이 자료가 편하고 좋더라구요. (https://wikidocs.net/21703)

위 링크에서 규칙을 익힌 후에 정규 표현식 연습 사이트(https://regex101.com/)에 가서 실습해 보는 것을 추천합니다!

 

# DDL, DML, DCL

SQL은 크게 세 종류로 하위 카테고리를 나눌 수 있는데요. 

DDL은 Data Definition Language를 의미하는 것으로 create, alter, drop 등의 작업을 수행합니다.

DML은 제일 많이 쓰이는 종류로, Data Manipulation Language를 뜻하고 select, insert, update, delete 등의 작업을 할 수 있습니다. SQL 코딩 테스트를 준비하게 된다면 가장 많이 접하게 되는 것도 DML이에요!

마지막으로 DCL은 Data Control Language을 뜻하고 grant, commit, rollback 등의 작업 수행이 가능합니다.

 

# Primary Key

세상에는 데이터가 정말 많습니다.

그럼에도 불구하고 우리는 각각의 데이터를 유일하게 식별하는 것이 가능합니다.

이 작업이 가능한 이유는 Primary Key(PK)라는 것이 존재해서 그렇습니다!

사람을 정형 데이터로 표현하자면, 주민번호를 Primary Key라고 할 수 있겠네요.

 

# 정적 페이지 VS 동적 페이지

정적 페이지는 고정된 형태의 웹 페이지를 의미합니다.

반면에 동적 페이지는 클라이언트의 움직임에 따라 가변적으로 변하는 웹 페이지를 의미하고요.

정적 페이지는 requests, beautifulsoup 라이브러리만으로 데이터를 수집하는 것이 가능하지만, 동적 페이지는 selenium을 사용해서 움직임을 제어하는 식으로 접근해야 원하는 데이터를 수집하는 것이 가능해집니다.

 

# robots.txt 파일

데이터를 수집하려는 웹 페이지 뒤에 '/robots.txt'를 붙이면, 해당 페이지 내에서 허용하는 데이터 수집 범위를 확인할 수 있습니다!

예를 들어 naver에서 데이터를 수집한다면, 'www.naver.com/robots.txt'라고 주소창에 입력하면 텍스트 파일 형태로 데이터 접근 허용 범위를 확인할 수 있어요.

 

● 개선 (제가 취약했던 개념을 주로 정리했습니다.)

# find 메서드 vs select 메서드

beautifulsoup 라이브러리 내부에 있는 find 메서드와 select 메서드를 사용하면 원하는 html 내부 데이터에 접근할 수 있습니다.

비슷한 용도의 메서드지만, 두 메서드는 필요로 하는 input 형태가 미묘하게 다르므로 주의해야 하는데요.

find 메서드를 사용할 때는 찾고자 하는 html 내부 정보값을 쪼개서 부여해야 하고, select 메서드를 이용할 때에는 찾고자 하는 html 내부 정보값의 css selector를 통째로 넣어야 한다는 점에서 다릅니다.

 

● 5월 회고

5월에는 환경에 익숙해지기 위해 많은 힘을 쏟았던 것 같아요.

그래도 5월에 정원이, 민호, 유빈이, 준영 오빠랑 친해지게 되어서 금방 적응할 수 있었던 것 같습니다!

이 페이스 밀고 나가면서 계속 공부에 집중해야겠습니다!

아직 모든 사람들과 친해진 것은 아니지만, 우리 기수 사람들 다 열심히 하고 순둥순둥해서 정말 좋아요bb

그리고 강사님께도 배워갈 점들이 많아서 만족합니다 ^^

 

이번 주도 돌아 보니까 공부해야 하는 내용들이 정말 많네요!

그치만 저는 이 분야를 진심으로 좋아하고 더 깊게 배워보고 싶으니까... 끝까지 책임지고 견뎌 볼래요.

다시 힘내서 공부에 전념하겠습니다!

 

 

 

 

 

+) 부족한 부분이 있으면 댓글로 말씀해 주세요! 겸허한 마음으로 더 공부하고 수정하겠습니다.