[네트워크] TCP/IP 5계층 | Application Layer
·
CS/Network
TCP/IP 5계층ApplicationFTP, HTTP, SMTP 등의 프로토콜TransportTCP, UCPNetworkIP, 스위치Link이더넷Physical 여기서 7계층되면…Application - Transport 계층 사이에 두 계층 추가Presentation 인코딩, 디코딩, 암호화/복호화Session: 애플리케이션 간 연결 지원(SSL, TLS 등)계층 간 이동 ⇒ Encapsulation각각의 계층을 이동하면서 프로토콜 헤더를 붙이게 된다.캡슐화: 송신 측에서 응용계층부터 각 계층을 들리면서 헤더 추가, 물리 계층까지 가면 최종적으로 전기 신호로 변환되어 수신 측에 도착  Applciation Architectur..
[Algorithm] 이중 포문 조정 - 구간합
·
PS/Algorithm
개요 시간복잡도 줄이는 법을 학습하면서 해본 정리 코드트리를 참고하였다! 어떤 배열에서 특정 합을 만족하며 가장 크기가 큰 구간의 크기를 찾기 위해 완전탐색을 하면 다음과 같다. 완전탐색 - O(N**3) # 이 배열에서 특정 구간을 골라서, # 합이 10이 넘지 않아야 하고, # 배열의 크기가 가장 커야 한다. 이때의 배열 크기는? arr = [0,6,3,2,4,9,1] n = len(arr) target=10 # 무식하게 구해보기 for i in range(1, n+1): for j in range(i, n+1): total = 0 for k in range(i, j+1): total += arr[k] if total target : break ans = max(ans, j-i+1) *이 경우, j는..
[DB] DB스튜디오 과제 리뷰 2 | 데이터 모델링과 개념적 설계
·
DB/DB 설계 과제
개요지난 1편에 이어서, 이번 과제도 배울 점이 많아 리뷰를 작성한다. 요구사항 1  지금까지 과제에서는 DATABASE 설계 명목 하에 개체와 속성이 뚜렷하게 보이는 식으로 요구사항이 정의되었다.그런데 원래 요구사항은 대화하는 방식으로 주어진다. 이번 과제부터 자연어 요구사항이 주어졌고.. 이러한 경우는 "모호성 제거" 단계를 거쳐야 한다.     내 설계는 위와 같은데, 피드백을 받으면서 느낀 점은 다음과 같다. 요구사항이 빠졌는지에 대해 면밀히 검토하는 것은 좋다. 그런데 개체 간의 단순한 관계의 의미를 넘어서 응용 관점을 검토해보는 태도가 필요하다. 그러니까 위 설계같은 경우는 Customer와 Book 사이에 order라는 관계는 의미상으로는 완벽하다. 하지만 다음 질문에 답하기 어려운 설계다...
[AWS] public & private subnet 분리로 서버 운영하기
·
DevOps/AWS
개요AWS 서비스를 조금 더 보안성 있게 운영하고자 한다면, 한 VPC 내의 subnet을 분리하여 사용하는 방법이 있다.이번 프로젝트는 앞으로 동아리에서 쭉 사용할 서비스이므로 처음부터 보안에 유의하여 설계를 해야겠다 다짐했다!!  그래서 이 포스팅을 통해 어떤 과정을 겪었는지 정리해보려 한다.AWS에서 자체적으로 해주는 것이 많아서 생각보다 많이 간단했다. VPC 만들기AWS 계정을 생성하고 나면 기본 VPC는 존재한다. 별도의 퍼스널 서브넷 세팅을 위해 새로 VPC를 생성하자. 생성할 리소스 옵션 중 VPC만/VPC 등 두 가지가 있는데, private subnet에 RDS를 두려면 반드시 후자를 선택해야 한다. RDS 생성 시에도 RDS subnet을 세팅하게 되는데 이때 subnet은 두 개 이..
[백준/1063] 킹 | 구현 실수 방지를 위한 경우의 수 체크하기
·
PS/BOJ&Programmers
킹 1063번: 킹8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는www.acmicpc.net 알고리즘킹이 움직인다. 이때 체크해야할 조건은 다음과 같다.  격자 안에서만 움직여야 한다.돌이 있는 곳으로 움직일 경우, 돌과 함께 움직여야 한다.이때 돌 또한 격자 안에서 움직여야 한다.돌이 격자 밖으로 나가는 경우도 체크하되, 이때 킹이 격자 내에서 움직인다면 상관없이 움직인다 이를 코드로 나타내면 다음과 같다.# 격자 내에서 해결해야한다.if (0   돌과 킹이 함께 움직이되 킹이 우선순위다. 이 케이스들을 if로 분기해주었다.  전체 코드# 행: row, 열: c..
[DB] DB스튜디오 과제 리뷰 | 데이터 모델링과 개념적 설계
·
DB/DB 설계 과제
개요DB 스튜디오 과목에서 매주 요구사항에 맞게 데이터 모델링을 하고, 개념적 설계를 진행한다.각각의 팀이 설계한 과제물에 대해 게시판을 통해 1차 토의하고, 강의시간에 교수님과 2차 토의를한다.토의에서 나왔던 내용을 중심으로 과제에 대한 리뷰를 작성해보도록 한다. 요구사항첫 설계의 요구사항은 다음과 같다. 하나는 UNIVERSITY DB로, 일반적으로 대학교에서 학생, 학부, 과목 등을 관리하는 요구사항이다. 두 번째는 MAIL_ORDER DB로, 쉽게 말해 구매 서비스다. 개체와 속성, 관계 추출먼저 ERD를 그리기 전, 텍스트로 개체와 속성, 관계를 추출하는 과제를 수행하였다. 이때 composite, complex attribute 등의 속성 특징과 관계를 속성으로 나타내는 것을 활용하였다. 특히..
[개발일지] 배포 삽질기 | 심볼릭 링크, 리눅스의 Capacities, ufw, netstat
·
회고 & 후기/개발 일지
개요새로운 프로젝트 배포 테스트를 하는 과정에서 했던 삽질에 대해 기록한다.하나의 도메인 내에서 여러 포트를 사용하고, 또 여러 웹서버를 사용하는데 제대로 서버/네트워크를 파악하지 못할 시 시도해볼만한 것들이다. 내가 진행한 서버의 개략적인 상황은 다음과 같다. HTTP/HTTPS 요청80, 8085, 8080 - Tomcat, Apache, java application이 중에서 8080은 서버(platform) 역할을 한다.8081 - Node.js(React), Nginx  일단 Ningx 웹서버 위에 React 프로젝트를 올리는 건 따로 포스팅할 예정이다. 여기서는 정말 내가 했던 삽질, 날 것을 다룬다...까먹지 않으려고 기록하는 용이고 필요하다면 키워드를 통해 다른 사람도 활용할 수 있도록 정..
[AWS] AWS CLI 설정 및 활용하기
·
DevOps/AWS
개요GCP를 사용하면서 이 글 과 같이 google cloud SDK라는 걸 통해 콘솔에 접근하고 여러 클라우드 서비스를 이용하였다.AWS도 이와 마찬가지로 SDK, CLI(명확하게 말하자면 SDK와 CLI는 다른 것이긴 하다.)를 통해 콘솔에 접근하는 서비스가 있다.이걸 설정하고 AWS 서비스를 이용해보자! 우선 root 계정과 그로부터 admin 권한을 할당 받은 계정이 있다고 가정한다. AWS CLI latest 다운sudo curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip" 해당 문서는 MacOS 사용자 기준으로 다운 방법을 제시하고 있다. 그냥 위 명령어를 iterm or terminal에 입력해주면 된..
[JAVA] Effective JAVA. 9장 일반적인 프로그래밍 원칙 1편(item 57, 58, 59, 60)
·
언어/JAVA
개요회사 업무로 진행하는 이펙티브 자바 세미나 자료 내용이다. 책과 블로그를 참고하였으며, 자세한 코드는 여기서 확인할 수 있다.   GitHub - cobinding/effective-java-semina: [JAVA] 인턴십 업무로 진행한 Effective-JAVA 세미나 코드[JAVA] 인턴십 업무로 진행한 Effective-JAVA 세미나 코드. Contribute to cobinding/effective-java-semina development by creating an account on GitHub.github.com 9장은 내용이 많아서 1편과 2편으로 나누어서 포스팅할 예정이다.item 57. 지역변수의 범위를 최소화하라.코드 가독성과 유지보수성을 위해 지역변수의 유효 범위를 최소화하자..
[백준/5671] 호텔 방 번호 | 중복값 개수 세기(딕셔너리와 SET)
·
PS/BOJ&Programmers
5671 호텔 방 번호 5671번: 호텔 방 번호선영이는 집 호수에 반복되는 숫자가 있는 경우에는 그 집에 사는 사람에게 불운이 찾아온다고 믿는다. 따라서, 선영이는 838호나 1004호와 같이 한 숫자가 두 번 이상 들어있는 집에는 절대 살지www.acmicpc.net 알고리즘범위에 해당하는 숫자들이 자릿수마다의 중복되는지 체크하면 된다. 같은 값이 있는지 확인하는 방법으로는 딕셔너리를 떠올렸고 아래와 같이 중복 체크를 해주었다.  for item in hotel: d={'0':0, '1':0, '2':0, '3':0, '4':0, '5':0, '6':0, '7':0, '8':0, '9':0} flag=True for s in str(item)..
[JAVA] 날짜/시간 클래스 알아보기(Date, LocalDateTime, ZoneDateTime)
·
언어/JAVA
개요회사에서 새로운 기능 추가를 위해 팀원 분이 Date를 쓴 것을 발견하였다.이펙티브 자바 스터디에서 Date클래스는 사용을 지양해야 한다고 공부했기에 이 부분에 대해 자세한 기록을 남겨 곱씹어야겠다고 다짐했다.  DATEjava의 util 클래스다. 공식 문서를 살펴 보면, Date 클래스가 구현한 인터페이스는 다음과 같다.Serializable: 특별한 메소드를 포함하지 않는 마커 인터페이스다. 객체의 상태를 저장하거나(메모리에 존재하는 객체를 디스크에 저장) 네트워크를 통해 전송할 수있도록 바이트 스트림으로 변환하는 것이다. Clonable: 이또한 마커 인터페이스다. 객체를 복사할 때 사용된다.Comparable: Date의 compareTo 메소드를 지원하는 인터페이스다. DATE 클래스의 단..
[백준/1068] 트리
·
PS/BOJ&Programmers
1068 트리 1068번: 트리첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다www.acmicpc.net  알고리즘1. 이 문제는 부모가 인덱스, 해당 인덱스의 자식을 리스트로 부여한다. # index: 부모, 값: 자식# 노드의 범위가 0 ~ n-1인 경우for i in range(n): # root인 경우 if tree[i] == -1 : continue else: graph[tree[i]].append(i) 이렇게 표현하는 이유는 DFS 탐색 구현을 좀 더 직관적으로 평소와 같이 할 수 있기 때문이다...
sebinChu
Studying IT with cobinding