본문 바로가기

전체 글

(277)
최소직사각형 / 프로그래머스 1. 먼저, 세로가 가로보다 더 크다면 명함을 돌린다 2. 돌린 후에 가로와 세로의 최댓값을 찾는다 def solution(sizes): rotated = [] # 가로, 세로 길이 중에서 더 긴 값을 가로로 두기 -> 돌린다 for i in sizes: if i[0]
모듈, 프레임워크, 라이브러리, API 차이 모듈 : 특정 기능을 수행하는 코드 집합 (함수)패키지 : 관련된 모듈을 분류하는 방법라이브러리모듈의 집합,그림을 그리고 싶어서 붓, 물감, 스케치북같은 여러 미술 도구를 가지고 그림, 이때 추적으로 어떤 미술 도구들을 가져오는 것은 나의 자유!프레임워크애플리케이션을 개발하는데 사용되는 구조소프트웨어 개발을 간편하게 만들기 위한 소프트웨어 개발 환경비지니스 로직에 집중할 수 있음나는 화가, 주어진 양식대로 그림을 그려야 하고, 이를 벗어나면 안 된다! 이 그림 양식을 따르면 나는 훌륭하고 가치있는 그림을 그릴 수 있다!API도서 SNS를 만들고 싶은데, 시중에 나온 책들의 정보들을 내가 수집해서 가져오기는 너무 어렵고 복잡함 -> 내가 원하는 책 정보와 갯수를 담은 도서 정보 내역을 작성하고 이를 대신 ..
Web Application / WAS / Servlet Web Server정적 리소스(HTML, CSS, JS, 이미지) 제공Application 로직을 포함할 수 있지만 특화는 WAS WAS(Web Application Server)웹 서버의 기능 포함 + Application 로직 수행 + DB와 상호작용 => 동적 컨텐츠 생성 (톰켓,,)Java에서는 Servlet Container 기능을 제공하면 WAS 실제 웹 시스템 구성정적은 웹 서버, 동적은 WAS웹 서버는 오류가 날 일이 적이 때문에 오류 화면을 보여줄 수 있음 Servlet만약, 로그인을 할 때 실제로 전달되는 데이터는 아래처럼 HTTP메시지로 주고 받아짐 -> 그렇기에 서버는 서버와 TCP/IP 연결....부터 시작하면서 HTTP Message와 관련된 작업과 비지니스로직, 연결 등을 해 ..
TCP, UDP/ 브라우저에 URL 입력시 발생하는 일 / HTTP 네트워크 기본 기식인터넷 : 컴퓨터 네크워크 통신망ip : 인터넷 프로토콜, 즉 통신 규약, ip주소는 ip에 필요한 고유 주소인터넷 통신 시에는 지정한 IP 주소에 데이터를 Packet 이라는 단위로 전달 TCP신뢰성 통신이라 생각하면 됨, 키워드는 신뢰! -> 데이터 잘 받았어요!, 패킷 순서보장해요! 3 Way HandShake 수행, syn보내면 ack로 잘 받았다고 응답하는 과정, ack는 잘받았고 너의 요청을 수락한다는 의미, 그래서 클라이언트는 ack와 함께 데이터를 전송함 -> 이 과정을 통해서 신뢰성을 보장하지만 대신 시간이 오래걸린다 ㅜㅠ UDPTCP랑 반대라고 보면 됨, 비신뢰성 비연결성 하지만!  3Way HandShake가 없기때문에 속도가 빠름데이터 무결성 검사하는 체크섬(Ch..
Restful API 설계 방법 HTTP API 설계 방법HTTP API는 설계시 항상 리소스 식별을 기준URI에 들어갈 리소스는 복수 형태 board → boardsURL에 동사를 사용하지 않는다.HTTP Method의 역할을 URL에 포함하지 않는다.Restful API : REST 기반으로 서비스 API를 구현한 것REST : URI를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE,PATCH 등)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것 구현 규칙리소스는 명사를 사용복수 형태를 사용만약, REST만으로 해결하기 어려운 경우라면 동사를 허용자원의 계층 관계를 슬래시(/)로 표현마지막 문자에는 슬래시(/)가 있으면 안된다.하이픈(-)을 사용소문자URI에..
2606 바이러스 / DFS,BFS 접근 방법1. 먼저 연결 정보를 입력 받기n = int(input())m = int(input())# 1. 연결 정보에 대해 입력 받기con = []for _ in range(m): a, b = map(int, input().split()) con.append((a, b))# con = [[1, 2], [2, 3], [3, 5] ....] 2. 방문 여부를 확인하는 리스트 생성visited = [False] * (n+1) 3. 연결 정보 -> 그래프로 표현 (양방향 연결)graph = {} for i in range(1, n+1): graph[i] = [] # 결과 : {1: [], 2: [], 3: [], 4: [], 5: []} for a, b in con: ..
크기가 작은 부분 문자열 / 프로그래머스 삼총사def solution(number): answer = 0 for i in range(0, len(number)): for j in range(i+1, len(number)): for k in range(j+1, len(number)): if number[i] + number[j] + number[k] == 0: answer += 1 return answer 크기가 작은 부분 문자열첫 번째 시도 -> 하지만 테스트 케이스에서 시간 초과 및 빈 객체에 pop했다는 에러 뜸len(deq) >= len(p) 이  조건 또한 빼먹음import collectionsdef solution(t, p): ..
키오스크에 장바구니 및 구매하기 기능 추가하기 (+반성의 글..) 결론부터 말하자면 이번 과제는 많이 부족했던 것 같다🙈하지만 어쩌겠는가,,, 이미 시간은 지났고 되돌릴 수 없다지금부터 고민했던 점들에 대해서 정리해보도록 하고 다음 프로젝트는 이번 문제점을 고쳐서 발전시키는 방향으로 가자😳😳😳 고민점장바구니 기능을 클래스로 빼는게 맞는지에 대한 고민장바구니기능이 없는 lv5만 구현했을 때까지만 하더라도 Kiosk 클래스는 사용자의 주문에 대한 입출력에 대해서 기능적인 부담이 크지 않다고 생각하지만, 장바구니 요구사항을 보니 내용이 꽤 많았음.. (추가 삭제 조회 등등, + 예외 처리)그렇기 때문에 이 모든 요구사항을 Kiosk에 넣어버리면 코드도 엄청 무거워지고 알아보기가 너무 힘들 것 같다고 생각-> 장바구니와 관련된 역할은 Cart 클래스에서 하기로 결정!p..