Study 64

인프런 <AWS 입문자를 위한 강의> 강의메모

AWS(Amazon Web Service) 입문자를 위한 강의 - 인프런 | 강의요즈음 회사 및 다양한 프로젝트에서 종종 사용되는 AWS 서비스들의 핵심 이론을 배우며 뿐만 아니라 함께 따라하는 실습을 통하여 AWS를 온전히 내것으로 만들자!, [사진] AWS 핵심 기술, 기본기부www.inflearn.com EBS: Elastic Block Storage- 저장 공간이 생성되며, EC2 인스턴스에 부착된다.- 디스크 볼륨 위에 File System이 생성된다.- EBS는 특정 Availability Zone에 생성된다. EBS 볼륨 타입>1) General Purpose SSD (GP2)2) Provisioned IOPS SSD (IO1) >3) Throughput Optimizaed HDD (ST1)..

Study/AWS 2023.07.29

인프런 <스타트업과 함께하는 AWS 클라우드> 강의기록

✅섹션 0: 클라우드를 사용해야 하는 이유 Security Group- 서버를 만들 땐 방화벽이 있어야 한다. - SSH- HTTP- HTTPS웹이니까. 인스턴스 내부로 접근하려면?- connect- 그러나 쉘로도 접근해보기. ✅섹션 1: 로드밸런서 사용해보기- 가용영역(Availabilty Zone): 데이터센터.- 리전(Region): 3개 이상의 가용역역을 논리적으로 묶음.- 인스턴스를 여러개 사용하게 될텐데, 주소가 여러개인데 사용자의 트래픽을 받아 분산시켜줄거야. - 로드밸런서는 가용영역을 최소 2개 이상 선택해야하는 이유: 한 가용영역이 문제가 생겨도, 다른 한쪽으로 버틸 수 있기 때문. 1. 우선 HTTP, HTTPS rule 포함한 SecurityGroup 만들기2. 로드밸런서 만들기 전,..

Study/AWS 2023.07.27

개념 정리: CSR, SSR, 돔트리, HOC, Hook

CSR: Client Side Rendering- 렌더링이 클라이언트 쪽에서 일어난다.- 서버는 요청을 받으면 클라이언트에 HTML과 JS를 보내준다. - 클라이언트는 그것을 받아 렌더링을 시작한다. SSR- SEO 최적화- SSR이 서버 자원을 더 많이 사용한다.  돔트리- 왜 hook이 바뀔 때 돔트리가 바뀌는건지 HOC: High Order Component- 컴포넌트 로직 재사용을 위한 패턴- HOC(Higher-Order-Components)은 컴포넌트를 개발하는 하나의 패턴으로, 컴포넌트를 인자로 받아 새로운 컴포넌트로 변환해 반환하는 함수이다.- 함수형 컴포넌트가 등장하고 나서는 거의 사용되지 않는다. 고차 컴포넌트 지옥에 빠질 수도 있기 때문.- 고차 컴포넌트는 사이드 이펙트가 전혀 없는 ..

Study/Frontend 2023.07.25

RDBMS와 NoSQL의 차이점

RDBMS 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 관리해주는 소프트웨어 R: Relational - 관계형 데이터 모델을 기초로 두고, 모든 데이터를 2차원 테이블 형태로 표현한다. 장점: 명확한 데이터 구조 보장 단점: 복잡한 쿼리, Scale-up으로만 가능한 성능향상, 유연하지 못한 스키마 NoSQL RDBMS와는 달리 테이블 간 관계를 정의하지 않는다. 단 하나의 데이터 테이블만 있어, Join의 개념도 없다. 장점: 자유로운 데이터 구조, 데이터 분산 용이, Scale-up 뿐만 아니라 Scale-out도 가능 단점: 데이터 중복이 발생할 수 있음, 데이터 구조 결정이 어려움 종류 Key-Value Database key와 value의 쌍으로 저장된다. 값에는 어떠..

Study/Backend 2023.01.27

[Nomard Coder] NestJS로 API 만들기

완성코드https://github.com/daheeahn/hi-nest핵심앱은 여러 개의 모듈로 구성됨.모듈은 컨트롤러와 서비스로 구성됨.컨트롤러는 url을 가져오고 함수를 실행한다.서비스는 실제로 function을 가지는 부분이다. 필요하다면 db에 접근도 한다.0.1 Welcomenode.js 위에서 움직이는 프레임워크. (사실 express 위에서.)node.js에 서버 구성할 수 있게 해줌.다른 node.js 프레임워크에는 없는 구조를 가지고 있다.nest.js는 구조가 있다. 그것을 따르기만 하면 큰 규모의 백엔드를 쉽게 만들 수 있다.nest.js 배우면 express.js로 돌아갈 수 없다!node.js는 구조가 없어 자유롭다.express의 미들웨어와 같은 것이다.결론: 아주 좋은 아키텍처..

Study/Backend 2021.02.08

[백준 / Python] 1753 최단경로 (다익스트라)

결과 메모리: 167436 KB 시간: 868 ms 알게된 것 다익스트라: 한 정점에서 다른 모든 정점으로의 최단 거리 플로이드-와샬: 모든 정점에서 다른 모든 정점으로의 최단 거리 heap (https://hocheon.tistory.com/70) (https://dingrr.com/blog/post/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-heap%ED%9E%99) 최댓값과 최솟값을 빠르게 찾기 위해 고안된 완전 이진트리 형태의 자료구조. O(log n) 삽입: 트리 마지막 원소에 추가 삭제: 루트 노드 제거, 마지막 노드를 루트로 이동 이진 탐색트리와의 차이점: 이진 탐색트리는 탐색을 위함, 힙은 최소/최대값 찾기 위함. 왜 사용?: 데이터를 큐나, 배열에 데이터를 넣고 최..

Study/Algorithm 2020.12.06

[백준 / Python] 1613 역사 (플로이드-와샬 알고리즘)

결과 (PyPy3) 메모리: 127824 KB (개선: 126088ms) 시간: 5440 ms (개선: 640ms) 주의할 것 항상 index 때문에 틀렸습니다 를 한 번 마주친다. 조심하자!!!! 개선 시간이 너무 오래 걸려서 몇가지를 개선해보았다. 참고: https://www.acmicpc.net/source/18012011 maxsize 대신 0 대입. maxsize는 정말 필요할 때만 쓰자. 시간: 5440ms to 3232ms 🎉 import readline. 그냥 input() 대신 sys.stdin.readline import sys ip = sys.stdin.readline 시간: 3232ms to 640ms 😇 (이걸 이제까지 몰랐다니) 개선 전 코드 from sys import maxs..

Study/Algorithm 2020.12.04

[백준 / Python] 2458 키 순서 (플로이드-와샬 알고리즘)

https://www.acmicpc.net/problem/2458 결과 메모리: 126508 KB 시간: 976 ms 해결 방식 도저히 모르겠어서 블로그를 찾아봤다. (감사합니다 ㅎ.ㅎ) https://chldkato.tistory.com/42 아직 플로이드의 원리를 제대로 파악하지 못해서 그런 것 같다. 제대로 이해하고 풀자. key: 자신의 정점으로 오는 경로가 모두 파악된 것만이 자신의 키가 몇 번째인지 알 수 있다. 라는 것이다. 알게된 것 print([1, 2, 3, 3].count(3)) # count 함수 플로이드-와샬 알고리즘을 3번째 푸는데, 점점 감이 잡힌다! from sys import maxsize n, m = map(int, input().split()) arr = [[maxsiz..

Study/Algorithm 2020.12.04

[백준 / Python] 11404 - 플로이드

결과 메모리: 126224KB 시간: 348ms www.acmicpc.net/source/24194515 해결방식 전형적인 플로이드 문제. maxsize를 import 하지 않고 100000정도로 설정하면 너무 작아서 "틀렸습니다"가 뜬다. 주의하기. 제출코드 # 제출 from sys import maxsize # 큰 값 max = maxsize n = int(input()) m = int(input()) route = \[\[max\] \* n for \_ in range(n)\] # 1. 도시1에서 도시1의 비용은 0이니까 for i in range(n): route\[i\]\[i\] = 0 # 2. 각 도시 간의 비용 연결 for \_ in range(m): a, b, c = map(int, inp..

Study/Algorithm 2020.12.03

[백준 / Python] 9205 - 맥주 마시면서 걸어가기

알게된 것 다익스트라 알고리즘: 하나의 정점에서 다른 모든 정점으로의 최단 거리 구하기 플로이드 와샬 알고리즘: 모든 정점에서 모든 정점으로의 최단 경로 구하기, 거쳐가는 정점을 기준으로 최단 거리를 구한다. 참고 블로그 https://mygumi.tistory.com/110 https://m.blog.naver.com/PostView.nhn?blogId=ndb796&logNo=221234427842&proxyReferer=https:%2F%2Fwww.google.com%2F 이번 문제에서는 '플로이드 와샬 알고리즘'을 이용한다. BFS로도 풀 수 있다고 한다. 맨처음에는 BFS도 아닌, 플로이드도 아닌, 단순하게 각각의 거리를 비교하는 방식으로 풀었는데, 도저히 아닌 것 같아서 풀이를 검색해서 해결했다..

Study/Algorithm 2020.11.27
출처: https://mingos-habitat.tistory.com/34 [밍고의서식지:티스토리]