본문 바로가기

🌼 TIL

👏🏻 11/09 내배캠 React 9일차

오늘 할 일

  • JavaScript Deep dive 책 필사하기 (아침 8시)
  • Git,Github 강의 듣기(생활코딩, 인프런)
  • 알고리즘 강의 수강
  • 원장님 특강  

 

계획표

시간 내용 결과
8:00~8:40 Js 아침 필사 ☀️
10:00~11:30 원장님 특강(client-server-db구조) ☀️
11:30~13:00 알고리즘 강의 수강
14:00~16:00 알고리즘 특강 ☀️
17:00~23:00 알고리즘 강의 및 Git, github 강의

 

 

👩🏼‍🌾   오늘의 줍줍 " "

원장님 특강 ( Client-Server-db구조)

 

  •  server = 컴퓨터 / 요청한 값을 들어주는 것 = 응답 response
  • Client = 브자우저 + 브라우저를 통해 어떤 것을 요청하는 사람 = 요청 request
  • request 요청 : url로 하는 것 
  • venv : 가상환경 (가상의 컴퓨터 세팅)
  • 내 컴퓨터  = Local host = 127.0.0.1 -> 인터넷에 연결되어잇다면 서버가 될 수 있다
  • Framework : 우리가 개발에만 집중 할 수 있게 많은 것들을 쉽게 만들어 주는 것
  • route : 한곳에서 다른 곳으로 가기 위해 따라가는 길 (어디로 가게끔 하는 것) / Client로부터 request가 들어오면 어디로 갈지 정해주는 것
  • port : 항구, 서버에 들어올 수 있는 항구 / port5000 : 항구번호 5000번
  • def : 정의, definition / def(정의) 후 결국은 return한다. 이것이 def의 역할이다
  • render_template : template를 클라이언트(나와 브라우저)에게 주는 것
  • render : 주다, 만들다, 제시하다
  • template : 템플릿
  • Log : 일지,일지에 기록하다 = 무슨 일이 일어났는지 다 적는 것
  • log값 : python : print() / Javascript : console.log()
  • Terminal(터미널) : log값을 볼 수 있는 곳 (리녹스기반)
  • terminal 명령어 : ls = list directory contents 현재 리스트들 / clear = 깨끗하게 청소하기 / cd = change directory : 어디로 가려할 때

Get 방식과 Post 방식

큰 차이점

- Get : 파라미터를 노출한다! (보통 페이지 render와 같이 일반적인 기능을 get방식을 사용함)

- Post : 파라미터를 노출X  (Id,pw등 중요한 것은 노출이 되면 안되기 때문에 post방식을 많이 사용함)

파라미터란 무엇인가?

: 만약 Id,pw를 입력해서 누르면 서버에서는 그것이 매칭하는 사람을 db데이터에서 찾아야함

즉, Id,pw가 클라이언트로부터 서버로 전송되어야함

여기서 Id와 pw에 담긴 요청값, 그것이 파라미터이다!

파라미터 : 매개변수

 

비동기 호출 : 에 대해 알아보자 (숙제?)

 

알고리즘 강의

 

알파벳 문자인지 확인하는 방법

: 파이썬 내장함수 [ str.isalpha() ]를 이용하면 해당 문자열이 알파벳인지 확인할 수 있다.

 

ASCII 코드 아스키 코드 ( 미국정보교환표준부호 American Standard Code for Information Interchange )

: 컴퓨터는 0과 1 숫자 밖에 모르기 때문에 문자도 숫자로 기억한다.

그래서 여러가지 방식이 있는데 아스키 코드방식을 많이 사용한다.

구글링  "phython char to ascii code"

-> 파이썬 내장 함수 ord()를 이용하여 아스키 값 받기

ex) print(ord('a'))   ->  #97(아스키코드의 'a'의 값)

 

 

알파벳이 사용된 빈도수를 알아보는 문제

- 첫번째 방법

# 1 for 문을 이용해서 알파벳을 하나하나씩 반복하여 변수에 넣는다
# 2 .isalpha를 활용하여 알파벳이 맞는지 확인한다 ( 스페이스바는 알파벳이 아닌데 컴퓨터가 그걸 인지 못하기 때문에 해줌 ) => 문자열.isalpha()
# 3 if not 그 변수가 알파벳이 아니라면 계속 continue하여 다음 문자를 보도록 한다.
# 4 다음 continue 밑에는 변수가 알파벳 이라면 실행한다.
# 5 계속 진행하며 변수를 숫자로 전환하기 위해 ord() : 아스키 코드를 이용하여 변환한다 이때 값은 ord(변수) - ord('a')를 해줘야 아스키값이 출력된다
# 6 아스키값으로 출력된 변수에 +1을 해줘야 알파벳 순서에 맞는 함수가 된다. 0+1 = 1(이건 알파벳 'a'이다.) *햇갈리지 않게 외우기

 

range() 함수 : 연속된 숫자 (정수)를 만들어준다.

ex) range(10) = 0,1,2,3,4,5,6,7,8,9를 나타낸다. 마지막 숫자(10)은 표현하지 않는다.

range(start, stop)

ex) range(1,11)은 1,2,3,4,5,6,7,8,9,10숫자를 생성 인자를 2개 전달할 경우 첫번째 인자는 시작하는 숫자가 된다

rang(start,stop,step)

ex) range(0,20,2) 는 0,2,4,6,8,10,12,14,16,18을 생성한다. 마지막 인자 step은 숫자의 간격을 의미한다.

ex) range(20,0,-2)는 20,18,16,14,12,10,8,6,4,2 step으로 음수를 지정할 수도 있다.

 

range() 함수의 결과는 반복가능(iterable)하기 때문에 for문을 사용해 출력할 수 있다.

 

chr(97) -> 'a'

 

느낌

: 본격적으로 알고리즘 공부를 시작하였다. 알고리즘 문제를 한글로 바꿔 차근차근 생각을 정리하다보니 조금씩 이해가 되기 시작했다.

그래도 도저히 이해가 되지 않는 부분들이 많아서 그대로 받아드리기로 했다.

아직 javascript와 python의 기본기가 너무 부족한것 같아 머리속에 많은 것들이 들어오고 있는데, 알고리즘을 풀려 하니 너무나도 복잡하다. 그래도 조금씩 왜 이게 여기로 갔고, 여기선 어떤 문제를 해결할 수 있겠다 라는 감이 잡힌다는 긍정적인 느낌도 받았다.