💻 Development 408

[TIL] 2020-10-06

💪 Today I Learned Apache VS Nginx Apache : MPM 방식, 스레드/프로세스 기반 구조 Nginx : 비동기 Event-Driven 기반 구조 발표 자료 만들다가 문득 궁금해져서 찾아봤다. 2주에 걸쳐 서버 프로그램으로 apache와 nginx를 사용했는데 정작 둘의 차이점은 모르고 있었다. 그래서 오늘 포스팅에 간략하게나마 정리했다. 간단하게 동시 접속 요청이 많을 경우 nginx를 사용하면 될 것 같다. hard link VS symbolic link (soft link) hard link : 원본 파일과 동일한 inode를 가진다. symbolic link : 원본 파일의 이름을 가리킨다. phpmyadmin 설치 시 ln -s 명령어로 심볼릭 링크를 걸어줬는데 이게 ..

[TIL] 2020-10-05

💪 Today I Learned AWS 서버 도메인 적용 가비아 도메인 구매 http://sangmini.site 가비아에서 도메인을 하나 구매했다. 무료 도메인을 쓰고 싶었으나 소프트 스퀘어드 수업에서 별로 비싸지 않으니까 아까워하지 말라더라. (1900원/년 이면 진짜 싸긴 싸다) 구매한 도메인을 AWS 서버에 적용했다. 서버 프로그램으로 nginx를 사용 중인데, server block에 해당 도메인을 추가하는 것으로 쉽게 적용할 수 있었다. https 적용 certbot 이용 (with letsencrypt) 나중에 모의 외주를 하거나 실제 외주를 진행할 때 https 적용은 필수라고 한다. hypertext transfer protocol secure의 약자로, 쉽게 말해 보안성이 강화된 htt..

[네트워크/Network] HTTP 상태 코드 파헤치기

REST API 포스팅에서 HTTP 상태 코드에 대해 간략하게 정리했는데 복기하는 마음으로, 조금 더 자세히 알아봤다. HTTP status code HTTP 상태 코드는 클라이언트가 보낸 요청(request)이 성공적으로 완료되었는지 응답(response)을 통해 알려준다. 이러한 응답은 5개의 그룹으로 나뉘어진다. 상태 코드는 3자리 수로 나타내는데, 가장 앞자리 수가 바로 응답의 종류를 의미한다. 상태 그룹 역할 1XX Informational 현재 요청까지 처리했다는 임시적인 응답 2XX Success 클라이언트의 요청을 성공적으로 처리 3XX Redirection 요청을 완료하기 위해 추가적인 동작 필요 4XX Client Error 클라이언트의 요청 내용이 잘못된 경우 5XX Server Er..

[네트워크/Network] RESTful한 API 설계하기

이전 포스팅에서 API가 무엇인지 간략하게 알아봤다. 소프트 스퀘어드 4주차 과제는 이러한 API를 REST하게 설계하는, 즉 RESTful API를 만드는 것이다. 설계에 앞서 REST API 가 무엇인지 제대로 알고 싶어 정리했다. REST API REpresentational State Transfer 의 약자로 2000년도에 Roy Fielding 박사 논문에서 최초로 소개되었다. 로이 필딩은 HTTP 주요 저자 중 한 사람으로 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 REST를 발표했다고 한다. REST 구성 자원(Resource) : URI 행위(Verb) : HTTP Method 표현(Representations) 쉽게 말해 REST는 URI를 통해 자원을 표시하고, HTTP Meth..

[백준/BOJ] 14500 - 테트로미노

14500 - 테트로미노 문제 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. - 정사각형은 서로 겹치면 안 된다. - 도형은 모두 연결되어 있어야 한다. - 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누어져 있으며, 각각의 칸에는 정수가 하나 쓰여 있다. 테트로미노 하나를 적절히 놓아서 테트로미노가 놓인 칸에 쓰여 있는 수들의 합을 최대로 하는 프로그램을 작성하시오. 테트로미노는 반드시 한 정사각형이 정확히 하나..

[백준/BOJ] 11403 - 경로 찾기

11403 - 경로 찾기 문제 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오. 코드 N = int(input()) graph = [list(map(int, input().split())) for _ in range(N)] for k in range(N): for i in range(N): for j in range(N): if graph[i][k] == 1 and graph[k][j] == 1: graph[i][j] = 1 [print(*graph[i]) for i in range(len(graph))] 한마디 모든 정점에 대해 갈 수 있는 경로인지 아닌지를 확인하는 문제이므로 플로이드-와샬 알고리즘을 이..