post-custom-banner

오늘은 늦잠을 자서 출석을 겨우 했다. 눈을 떴더니 11시 58분이더라... 12시 전까지 중간 식사 시간을 포함해 12시간 공부를 하려면 일단 출석부터 해야해서 부랴부랴했다. 퇴실체크 하고 시간을 보니 끝나자 마자 시계가 12시로 바뀌어서 조금 식겁했다.

오늘은 배운게 뭔가 기억에 안 남는 날이다. 중간에 헤맨 시간이 길어서 생각보다 한게 없어서일지도 모른다.

서버-클라이언트 통신 이해하기

클라이언트가 서버에 요청을 할 때 2가지 방법이 존재한다.

  1. GET 방식
    -그저 요청만 하는 방식으로 데이터의 조회를 요청할 때 사용한다.
    ex)영화 목록 조회
  2. POST 방식
    -데이터의 생성(Create), 변경(Update), 삭제(Delete)를 요청할 때 사용한다.
    ex)회원가입, 회원탈퇴

Ajax
-JavaScript에서 서버에 요청하는 방식

※참고
JSON형식
-딕셔너리와 리스트들의 합쳐진 형태

<script>
	$.ajax({			
    type: "GET"							//GET 방식으로
    url: "데이터를 가져올 URL"				//이 URL에 요청해서
    data: {}
    success: function(response){		//결과값을 가져온다.
    	//내용이 들어간다.
    }
</script>

위의 내용은 굳이 외울 필요없이 필요할 때마다 복붙하면서 익숙해지면 된다고 하신다.

API를 사용할 때는 항상 response 값을 console.log로 찍어보자. 내가 필요로 하는 데이터 값을 확인해야한다.

<script>
    //이미지 바꾸기
    $("#아이디값").attr("src", 이미지 URL)
    //텍스트 바꾸기
    $("#아이디값").text("바꾸고 싶은 텍스트)
</script>

같은 것들도 있다고 한다.

뭔가 많이 배웠는데 생각보다 실습이 많아서 필기한게 별로 없다. 대부분 강의를 들으면서 제공받은 api의 데이터를 이용해 원하는 걸 뽑아내는 식으로 실습을 해서 그런 듯 하다.

실습을 좀 하다가 파이썬으로 넘어갔다.

Python의 문법은 JavaScript보다 직관적으로 자료형 선언 같은게 필요없다.

리스트와 함수가 조금 다른데

리스트는 값을 추가 하기 위해서는 배열명.append('값')을 사용하며

함수는

def sum(a,b):
	return a+b

이런식으로 사용하며 중괄호 같은 건 없지만 들여쓰기 여부로 포함 관계를 결정하기 때문에 들여쓰기가 굉장히 중요하다.

반복문의 경우에는 다른 프로그래밍 언어들과 조금 다른 편인데 어차피 리스트와 엮여서 사용되기 때문에 기획부터가 리스트와 함께 쓰여 그 안에서 값을 꺼내오도록 되어있다.

for 단수 in 복수:

의 형식을 많이 쓰며 복수는 for를 돌려주려는 변수의 이름이 단수쪽은 아무 이름이나 들어가도 상관없지만 보통 for를 돌리려는 변수의 단수형태로 많이 쓰인다.

파이썬에서는 라이브러리를 패키지라고 부르며 외부 라이브러리를 설치하는 것과 마찬가지로 사용하기 위해 설치를 해주면 된다.

파이썬에는 venv라는 폴더가 있는데 여기에는 패키지들이 모여있기 때문에 절대 개인이 건드리면 안 되는 곳이다.

패키지 설치를 위해서는 파일-설정-프로젝트-python 인터프리터 - + 를 누른 후 설치하려는 패키지명을 검색하면 된다.

requests 라는 패키지는 파이썬에서 ajex와 같은 역할을 한다.

패키지는 만든 사람마다 정의가 다르기 때문에 사이트나 블로그 같은 곳을 찾아보면 된다.

크롤링을 하기 위한 2가지
1. html 가져오기
2. beautifulsoup - 원하는 내용을 찾기 쉽게 도와주는 패키지
-기본 세팅을 해놓으면 html이 쫙 들어온다.

header - 브라우저에서 콜을 날린 것처럼 하기 위해 사용
data - 기져올 데이터
soup - beautifulsoup을 쓰겠다.

beautifulsoup을 사용하는 방법
원하는 데이터 아무거나 우클릭 - 검사 - 우클릭 - copy - copyselector

이후 파이썬 에디터에서

변수 = soup.select_one('복사한 copyselector')

를 해준 후

print(변수) 를 하면 코드가 나오고
print(변수.text)를 해주면 텍스트만 나오는 식으로 뽑아쓸 수 있다.

위의 경우에는 단 하나의 데이터만을 대상으로 한다.

때문에 여러 데이터에서 원하는 데이터만을 뽑아 쓰려면

원하는 데이터 아무거나 copyselector 값을 #으로 주석처리해서 붙여넣고 비교를 위해 다른 데이터의 copyselector 값 그리고 동일하지만 데이터값이 다른 것의 copyselector를 가져와 주석처리해서 붙여넣은 후 앞 부분의 공통 값을 잘라 복사하고 아래와 같이 하면 된다.

여러개를 검사하고 싶을 땐 select_one이 아닌 select를 사용

변수s = soup.select('공통값')

for 변수 in 변수s:
a=변수.select_one('공통값 이후 다른 부분을 제외한 공통값')

하면 쭉 나오고 필요없는 데이터가 들어가있다 싶을 때는 if를 사용해주면 된다.

DB는 왜 쓰는가?
->잘 찾기 위해서

보통 정렬된 순서를 Index 값이라고 하는데 뽑아쓸 때 굉장히 중요하다.

DB의 2가지 방식
SQL : 칸을 만들고 차곡차곡 쌓음(정렬해서)
-장점 : 이상한 데이터가 들어오는 일이 없고 찾기가 쉽다
-단점 : 데이터 양식의 변경이 힘들다.
NoSQL(Not only SQL) : 들어오는대로 쌓는다(거르는거 없이)
-장점 : 유연히 사용이 가능하다.
-단점 : 보통 데이터의 양이 많지 않은 곳에서 사용

MongoDB
-NoSQL의 대표적인 프로그램

최근에는 클라우드를 많이 이용한다.
유저가 몰리거나 DB를 백업해거나 모니터링을 해야할 때 아주 용이하게 사용되기 때문

이번 웹개발 강의에서는 MongoDB Atlas를 활용한다.

MongoDB가 제공하는 클라우드로 컴퓨터를 빌려서 사용하는 것이기 때문에 예전에 다른 DB를 배울 때와 좀 다른 느낌이 들었다.

MongoDB를 사용하기 위해서는 pymongo와 dnsqython 패키지를 설치해주어야한다.

파이썬 파일을 이 DB에 연결하는 코드가 있는데 굳이 외울 필요없이 쓰던 곳에서 복사해서 사용하면 된다.

MongoDB를 사용하면서 데이터의 삽입 수정 삭제를 할 때 db. 바로 뒤에 붙는 것을 컬렉션이라고 하며 비슷한 아이들끼리 모아놓았음을 표시하는 거라고 생각하면 된다.

이름이 정해진 것이 아니라 내가 만들어서 붙인 것.

삽입 수정 삭제 코드 역시 외울 필요 없이 필요할 때 찾아서 쓰면 된다고 하셔서 여기에는 적지 않았다. 물론 위에 적힌 대부분의 것들이 필요하면 찾아보면 되는 것이지만 일단 너무 늦어서 졸린 탓이다.

내일은 미니 프로젝트 발표회가 있는 날이다. 다른 사람들이 발표를 할 때 우리 조는 인강을 듣고 만들던 걸 마저 만들 예정인데 DB 연동이 복병이다. 강의 좀 더 듣다 자야지.

아래에는 뭣도 모르면서 만들어본 와이어 프레임과 나와 조원들이 DB 연동전 임시로 만든 사이트의 캡쳐본이다.




방명록 부분은 내가 만들었다. 부트스트렙을 찾아서 원하는 기능 가져다가 복붙하고 내 나름대로 건드리긴 했는데 저 x 표시가 원하는 위치에 붙지 않아서 내일 튜터님께 여쭤봐야겠다.

하나로 합치는 날이 오긴 하겠지;;

profile
개발자의 길에 한 걸음 더
post-custom-banner

1개의 댓글

comment-user-thumbnail
2022년 11월 4일

늦게 시작하셨음에도 불구하고 대단하십니다!!
열심히 정리하셔서 아마 다음 프로젝트 때에는 정말 제대로 임하실 수 있을 것 같네요!!
앞으로도 지금처럼 열코합시다~~ 우리 모두 열코~!

답글 달기