분류 전체보기
-
[백엔드 로드맵🐖] 브라우저와 작동 원리스터디/백엔드 로드맵 2022. 7. 29. 14:13
>> 개요 브라우저가 어떻게 동작하는 지 설명하는 글이다. 이 글을 읽고 나면 브라우저 주소 창에 naver.com을 입력했을 때 어떤 과정을 거쳐서 네이버가 화면에 나타나게 되는 지 알 수 있을 것이다. 브라우저란? 브라우저란 웹 페이지, 이미지, 비디오 등의 콘텐츠를 수신, 전송 및 표현하는 소프트웨어다. 우리가 인터넷에 접속하기 위해 사용하는 크롬, 사파리, 엣지, 파이어폭스 등이 바로 브라우저다. 브라우저의 주요 기능 브라우저의 주요 기능은 사용자가 선택한 자원을 서버에 요청하고 브라우저에 표시하는 것이다. 자원은 보통 HTML 문서지만 PDF나 이미지 또는 다른 형태일 수 있다. 자원 주소는 URI(Uniform Resource Identifier)에 의해 정해진다. 😛 URI와 URL의 차이점..
-
-
[백엔드 로드맵🐖] HTTP란 무엇인가?스터디/백엔드 로드맵 2022. 7. 28. 13:29
HTTP (Hyper Text Transfer Protocol) HTTP는 서버와 클라이언트가 서로 데이터를 주고받기 위해 사용되는 규약(Protocol)을 말한다. 프로토콜이란? 송신자-수신자 간 통신을 위해 정해놓은 약속같은 것이다. 드라마 '이상한 변호사 우영우'의 어느 화에서 판사가 '변호사들은 의견을 말하기 전에 먼저 손을 들어라' 라고 말한다. 변호사들은 판사에게 의견 어필을 하기 위해서는 손을 들어야 한다. 여기서 '손을 든다'는 판사와 변호사 간의 통신 규약이다. 데이터 형식 HTTP는 크게 요청(Request)와 응답(Response)으로 나누어진다. 유튜브를 예를 들어보겠다. '우영우 5화 하이라이트' 영상을 보고 싶어 해당 동영상을 클릭하면, 동영상 페이지가 나오고 재생이 된다. 유튜..
-
[백엔드 로드맵🐖] 인터넷은 어떻게 동작할까?스터디/백엔드 로드맵 2022. 7. 28. 12:26
결론 인터넷은 컴퓨터들이 서로 통신 가능한 거대한 네트워크이다. 왜 거대한 네트워크일까? 단순 네트워크 A 컴퓨터와 B 컴퓨터가 통신이 필요할 때, A 컴퓨터는 B 컴퓨터와 물리적으로 (이더넷 케이블) 또는 무선으로 (와이파이나, 블루투스)로 연결되어야 한다. 지금의 모든 컴퓨터들은 둘 중 하나를 이용해 지속가능한 연결이 가능하다. 이런 네트워크는 두 대의 컴퓨터 뿐만이 아니라 원하는 만큼의 컴퓨터를 연결할 수 있다! 그러나 많고 더 많은 컴퓨터를 연결할 수록 네트워크는 매우 복잡해진다. 예를 들어 10대의 컴퓨터를 연결하려는 경우 컴퓨터 당 9개의 플러그가 달린 45개의 케이블이 필요하다! (으악!) 이 문제를 해결하기 위해 네트워크의 각 컴퓨터는 라우터라고 하는 특수한 소형 컴퓨터에 연결이 된다. 이..
-
[파이썬🐍] 얕은 복사 vs 깊은 복사프로그래밍/Python 2022. 7. 27. 17:06
얕은 복사 VS 깊은 복사 코딩테스트 문제를 풀던 도중 문제가 발생했다. for i in range(len(nums)): n = nums n.pop(i) result.append(math.prod(n)) 나의 의도는 n이 매번 '온전한' nums를 할당받는 것! 그런데 인덱스 에러가 발생했다? # 프린트를 찍어봄 nums: [2, 3, 4] n: [2, 3, 4] nums: [2, 4] n: [2, 4] 오잉? 이럴수가! nums는 왜 변하는가 nums는 건드리지도 않았는데 말이지 그 이유는 '얕은 복사'를 했기 때문이었다. 얕은 복사란 무엇인가? 그걸 알기 위해선 먼저 mutable과 immutable의 개념부터 알아야 한다. 1. Mutable과 Immutable Mutable : 변경이 가능한 객체..
-
[😭 leetcode] 15. 3SumAlgorithm/1일 1코테 2022. 7. 25. 20:48
리트코드 13번째 문제 [3Sum] https://leetcode.com/problems/3sum/ 3Sum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 배열을 입력받아 합으로 0을 만들 수 있는 3개의 엘리먼트를 출력하라 (중복X) 정답 class Solution: def threeSum(self, nums: List[int]) -> List[List[int]]: result = [] # 편의상 정렬 수행 nums.sort() # i를 기준으로 투 ..
-
[😸코테] 시간복잡도 VS 공간복잡도Algorithm/알고리즘 2022. 7. 25. 18:48
시간 복잡도 특정한 크기의 입력에 대하여 알고리즘이 얼마나 오래 걸리나? 빅오 표기법 : 가장 빠르게 증가하는 항만을 고려하는 표기법 예제) 5개의 데이터를 받아 차례로 5회 더해준다 -> 연산횟수가 N에 비례함 -> O(N)이라 표기 array = [3, 5, 1, 2, 4] # 5개의 데이터(N=5) summary = 0 # 합계를 저장할 변수 # 모든 데이터를 하나씩 확인하며 합계를 계산 for x in array: summary += x # 결과를 출력 print(summary) 예제) 2중 반복문 -> N*N만큼의 연산 사용 -> O(N^2) array = [3, 5, 1, 2,4] for i in array: for j in array: temp = i*j print(temp) 코딩테스트에서는..
-
[🙌 CSS] 예쁜 글씨체 적용하기 (CSS 폰트적용, 구글 폰트 활용)프로그래밍/HTML&CSS 2022. 7. 9. 14:50
신문지 컨셉으로 웹 페이지를 만들려고 한다. 밑에 사진과 같이 구성을 했는데 제목 폰트가 밋밋해서 신문지 느낌이 살지 않는다! 신문지 컨셉을 명확히 하기 위해 예쁜 폰트를 적용해보자 1. 구글 폰트에 들어간다 https://fonts.google.com/ Google Fonts Making the web more beautiful, fast, and open through great typography fonts.google.com 2. 원하는 폰트를 클릭한다 3. 오른쪽에 [Select this style +] 버튼을 누른다. 그럼 다음과 같은 바가 열린다. (안뜰 경우 분홍색으로 동그라미 친 버튼 클릭) 4. @Import란에 태그 속 문장을 복사한 뒤 css 파일 맨 위에 붙여넣기 한다. (css ..