posts

Dockerfile 작성 가이드 (python, Django 시나리오)

2 minute read

1. 프롤로그 컨테이너 가상화 기법을 사용하면 환경의 제약없이 큰 성능 저하 없이 프로젝트를 딜리버리 할수 있습니다. 이 포스팅에서는 Django 기반의 웹 어플리케이션을 동작하기 위한 가벼운 이미지를 만들기 위한 시도들에 대해 작성합니다.

DHCP

1 minute read

DHCP 란? DHCP는 “Dynamic Host Configuration Protocol”의 약어로, 동적 호스트 구성 프로토콜을 나타냅니다. 이 프로토콜은 네트워크에서 컴퓨터나 장치가 IP 주소 및 기타 네트워크 구성 정보를 동적으로 할당받을 수 있게 해주는 표준화된 프로토콜입...

파이프와 리다이렉션

1 minute read

스트림 스트림(Stream)은 시간이 경과하며 쌓인 연속적인 데이터를 의미한다.

운영체제 개론

5 minute read

운영체제란 무엇인가? OS is software that operates computer system.

파일처리

1 minute read

파일 이란 무엇인가? field: attribute, data item: object의 특정 정보를 나타냅니다. record: field 등의 모음 = object file: 레코드들의 모임

OS 관점에서의 장애 복구

1 minute read

루트 파일시스템의 용량 초과 루트 파일시스템이 가득 차면 새로운 데이터나 파일을 저장할 수 없게 됩니다.

Spring과 Django

1 minute read

Spring? 넓은 의미의 Spring은 주로 엔터프라이즈급 자바 어플리케이션을 개발하기 위한 자바 기반의 오픈 소스 프레임워크 생태계이다. 좁은 의미의 Spring은 의존성 주입(Dependency Injection)을 통해 객체 간의 결합도를 낮추는 컨테이너 기술을 의미합니다....

객체지향 프로그래밍 v3.0

4 minute read

0. 객체지향 프로그래밍 실세계를 참고하여 객체들을 창조하고,  그 객체들 간의 협력을 통해 프로그램을 개발하는것이다. 객체는 상태를 가지고 있다. 현재 상태 기반으로 책임에 맞는 행동(메소드)를 수행하여 성공/실패여부를 판단하고, 새로운 상태로 갱신한다.

소형기관차

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/2616

로봇

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/1726

역사

1 minute read

1. 개요 https://www.acmicpc.net/problem/1613

성곽

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/2234

과제

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/13904

중량 제한

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/1939

두 배열의 합

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/2342

두 배열의 합

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/2143

파일 합치기

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/11066

나머지 합

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/10986

텀 프로젝트

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/9466

AOP

5 minute read

트랜잭션 코드의 문제 ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException;

JPA 정리

8 minute read

ORM(Object Relational Mapping) ORM은 객체 지향 프로그래밍 언어에서 관계형 데이터베이스의 데이터를 객체로 매핑하여 데이터베이스와의 변환 작업을 자동화하는 기술을 의미한다.

HTTP

4 minute read

0. 하이퍼텍스트 참조(하이퍼링크)를 통해 독자가 한 문서에서 다른 문서로 바로 접근할 수 있는 텍스트

네트워크 계층(L3) 개론

6 minute read

개요 네트워크 계층은 네트워크에서 다른 네트워크로의 데이터 패킷을 송수신하는 데 중요한 역할을 하는 OSI(Open Systems Interconnection) 7계층 중 3계층에 속하는 계층이다.

전송계층(L4)

4 minute read

개요 OSI 7계층안에서, 프로세스와 프로세스간의 통신을 담당하는 계층을 전송계층이라고 한다. 전송계층의 경우 송신측에서 데이터를 여러조각으로 쪼개는 세그맨테이션과 수신측에서 다시합치는 과정을 진행한다. 만약 데이터를 통으로 보냇을때 실패하면 다시 전송해야 하고, 이는 네트워크 트...

조인

1 minute read

조인 데이터베이스에서의 “조인 (Join)”은 둘 이상의 테이블에서 가져온 데이터를 결합하여 단일 결과 집합을 생성하는 작업을 말한다. 여러 개의 테이블에 분산된 데이터를 합쳐서 하나의 테이블 형태로 만들어주는 것인데 이를 통해 서로 관련된 데이터를 함께 조회하거나 분석할 수 있...

less than 1 minute read

키 데이터베이스에서의 “키”는 데이터베이스 테이블에서 각 레코드를 식별하는 데 사용되는 필드 또는 컬럼이다. 데이터베이스의 내용에의한참조 특징을 잘보여준다.

인덱스

1 minute read

인덱스? 데이터베이스에 빠른 접근을 위해 생성한 자료구조

트랜잭션

2 minute read

트랜잭션 데이터베이스상에서 더이상 쪼갤수 없는 작업의 단위

데이터베이스 개론

less than 1 minute read

데이터베이스란 무엇인가 조회와 조작을 위한 조직화된 데이터

자바와 코틀린 차이점

1 minute read

자바언어의 단점 자바는 타입 시스템과 객체 지향 특성을 강조하기 때문에 코드가 다소 길어질 수 있다. Getter와 Setter 메서드, 예외 처리 등은 간단한 작업에도 많은 코드를 필요로 하게 한다.

트리

2 minute read

트리 트리는 순환이 발생하지 않는 그래프 자료구조이다. 이 특징으로 인해 한 노드를 특정하여 루트노드로 정하게 되면, 각 노드들은 한개의 부모노드와 여러 자식노드를 가질수 있어 데이터를 계층적으로 구조화 할수 있다.

사전

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/1256

표준입력, 표준출력, 표준에러

less than 1 minute read

STDIN, STDOUT, STDERR 표준 스트림(standard stream)이라고 하며 POSIX 기반의 OS에서 기본적으로 제공하는 추상화된 입출력 장치를 의미합니다. 표준입력(STDIN): 표준 입력 장치의 ID 는 숫자로는 0 이며 일반적으로는 키보드가 됩니다. ...

DNS

1 minute read

DNS란

인터넷

less than 1 minute read

인터넷 인터넷(Internet)은 인터넷 프로토콜 스위트(TCP/IP)를 기반으로 하여 전 세계적으로 연결되어있는 컴퓨터 네트워크 통신망을 일컫는 말이다. 인터넷은 월드 와이드 웹, 전자 메일, 파일 공유, 웹캠, 동영상 스트리밍, 온라인 게임, VoIP, 모바일 앱 등 다양한 서...

메모리 관리

2 minute read

메인 메모리 메인메모리(주기억장치)로 프로세스에 필요한 정보를 담는 휘발성 공간

프로세스 관리

4 minute read

프로세스(테스크) 프로그램을 메모리에 올린 동적인 상태이다. 구체적으로 설명하면 OS가 프로그램을 메모리에 올리고 CPU를 위한 PCB(Process Control Block : 프로세스 제어 블록)을 할당한 상태이다. 프로세스들은 커널 공간에서 실행될 때 각자 스택 공간을 할당받...

해시테이블

less than 1 minute read

0. 해시함수 임의의 길이의 데이터를 고정된 길이의 데이터로 변환하는 함수이다

Cookie와 Session, JWT, BFF 패턴

4 minute read

1. Stateless 의 문제점 우리가 인터넷 뉴스 게시판에 댓글을 다는 상황을 예시로 들어보자. 댓글을 달기 위해서는 해당 웹서비스에 회원가입을 한후 로그인을 먼저 진행해야 한다. HTTP는 Stateless 하다는 원칙을 따져보면 사용자와 서버사이에 연결이 이루어지고 로그인을...

Java Object class의 메소드들 (이펙티브자바 3장 독후감)

3 minute read

Equals 메소드를 꼭 오버라이딩 해야할까? 반드시 할필요가 없으며, 하더라도 제대로 안하면 찾기 힘든 버그를 발생시킬수 있다. 다음 사항에 속한다면 equals 메소드를 오버라이딩을 하지 않는것이 좋다. 클래스의 인스턴스가 unique 하다면 (equals를 통해 비교할일...

카카오 2018 [1차] 셔틀버스

1 minute read

풀이 ```python 문제요약 셔틀은 09:00부터 총 n회 t분 간격으로 역에 도착하며 하나의 셔틀에는 최대 m명의 승객이 탈 수 있다. 가장 늦은 셔틀을 타고 사무실로 갈수 있는 시각을 구하자 같은 시각에 도착한 크루들이 있다면 대기열중에 제일 뒤에 선다. 다음날 셔틀을 타는...

왜 Spring 프레임워크를 사용할까

1 minute read

컴퓨터공학에서의 프레임워크? 특정된 분야(웹, 앱, 윈도우 어플레케이션) 의 앱을 구축하기 위한 필요한 기반 소프트웨어

카카오 2022 블라인드, 양궁대회

1 minute read

풀이 ```python 문제요약 전우승자 라이언 중심부터 10점으로 시작 같은 지점에 더 많은 화살을 맞춘 자가 점수 한번만 가져간다. 화살의 갯수가 같으면 어피지가 가져간다. 화살을 둘다 한개도 못맞쳣으면 점수가 없다. 최종점수가 높은사람이 우승자, 최종점수가 같으면 어피치를 우...

OSI 7 레이어와 TCP/IP

less than 1 minute read

OSI 7 네트워크의 통신과정을 7단계로 나눈것이다. 왜 나누었는가? 책임을 명확히 분리하면서, 장애발생시 계층별로 살펴보면서 문제의 원인에서 배제시켜가면서 대응을 도울수 있다. 인터넷이 안되면, 랜선을 확인하고, 설정을 확인하고 … ...

Serializable, Jackson

2 minute read

1. Serializable ? java.io 패키지에서 제공하는 직렬화/역직렬화 기능을 제공하는 인터페이스다. 이 인터페이스는 구현해야 하는 메소드는 없지만 jvm에게 표시해주는 marker의 역활을 한다. 이 인터페이스를 상속 받은 클래스는 JVM을 통해 직렬화/역직렬화가 가...

ENUM, 열거형상수

2 minute read

1. enum 상수들의 그룹 기능을 제공하는 프로그래밍 언어의 기능이다. java에서는 클래스를 통해 enum 기능이 구현된다.

스프링 프레임워크 구조

less than 1 minute read

1. 스프링 스프링 프레임워크와 스프링 프로젝트 생태계의 라이브러리를 Spring으로 통으로 일컬어서 부른다.

다익스트라 알고리즘

1 minute read

1. 개요 다익스트라 알고리즘은, 그래프 상의 한 vertex에서 다른 vertex들에 대해 최단거리를 계산하는 알고리즘이다. BFS 역시 그래프상에서 최단거리를 구하는데 활용할수 있지만, 각 edge에 가중치가 있는 경우 다익스트라 알고리즘등의 다른 방법을 사용해야 한다.

Transit Gateway를 통한 중앙 집중식 egress 구축

2 minute read

1. 개요 Transit Gateway는 완전관리형 hub-spoke model 서비스 이다. Transit Gateway는 수천개의 VPC와 연결할수 있고 VPN, Direct Connect와 연결이 가능하며 VPC peering 과 다르게 전이적 라우팅이 가능하다.

Zappa 라이브러리를 사용하여 Django 프로젝트 lambda 배포하기

1 minute read

1. 개요 AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있는 서버리스 컴퓨팅 서비스이다. Lambda를 사용하면 대부분의 인터프리터 언어로 코딩된 애플리케이션(백엔드) 서비스를 실행할수 있다. Zappa는 파이썬 어플리케이션을 쉽게 서버리스 배포...

cloudfront signed cookie를 활용한 회원전용 동영상 서비스 구축

2 minute read

1. 개요 cloudfront는 edge location을 통한 컨텐츠의 빠른 다운로드, 업로드를 지원하는 서비스이다. 이외에도 signed cookie, signed url을 통해 허가된 사용자들에게만 컨텐츠를 제공하는 서비스를 구축할수 있다. 이번 시나리오에서 간단한 비디오 스...

탄력적 ip 를 활용한 고가용성 환경 구축

1 minute read

1. 개요 elastic ip는 변하지 않는 정적 공인 ip 주소 서비스이다. 이미 ec2에 할당된 elastic ip를 다른 ec2에 할당해도 ip주소는 변하지 않기 때문에, 동일한 ip주소로 서비스를 유지할수 있는 장점이 있다. 하지만 로드밸런서와 오토스케일링그룹등의 서비스의 ...

vpc gateway endpoint를 활용하여 안전하게 s3 활용하기

1 minute read

1. 개요 s3 는 기본적으로 아마존 VPC에서 다루는 오브젝트로, ec2에서 s3를 접근하고자 할때 인터넷을 통해서 접근한다. 이걸 방지하기 위해서 나온 개념이 vpc endpoint이며, 이를 통해 ec2에서 아마존 사설망을 통해 s3에 접근할수 있고 인터넷을 통한 부정한 엑세...

Terraform을 활용한 aws 인프라 구축해보기

3 minute read

1. 개요 Infrastructure as a code 도구 를 활용하면 GUI가 아닌 코드를 통해 인프라를 구축할수 있다. 여기까지 들어보면 어떤 장점이 있을가 싶은데, 마우스를 통해 클릭하여 인프라를 생성하는것보다 코드를 작성하는것이 조금더 빠르고, 작성해둔 코드를 똑같은 인프...

Database 요점정리

less than 1 minute read

데이터베이스 관련되어있는 데이터의 모임이다.

쿠버네티스 시크릿 업데이트 하기

less than 1 minute read

1 인증서 제발급후 반영 예제 sudo kubectl create secret tls freshtuna-me --key="/etc/letsencrypt/live/freshtuna.me/privkey.pem" --cert="/etc/letsencrypt/live/freshtuna.m...

logrotate를 활용하여 로그 관리하기

5 minute read

1. 서론 데이터베이스 시스템이나 어플리케이션 서버, 웹 서버를 운용하다 보면 어느순간 쌓여 있는 로그들을 확인할수 있다. 이렇게 쌓인 로그들은 운영중인 시스템에 장애가 발생했을때 원인을 찾기위해 자료로 활용되기 때문에, 로그를 확인하는 습관은 엔지니어가 가져야할 덕목이기도 하다....

kubeadm을 활용하여 웹서비스 배포해보기

8 minute read

1. kubeadm 소개 & 인프라 구성 kubeadm은 쿠버네티스가 제공하는 클러스터를 빠르게 구축할수 있도록 도와주는 도구입니다. kubeadm 외에도 로컬환경에서 간단하게 쿠버네티스를 구축해볼수 있는 minikube, 클라우드 프로비저닝을 기본으로 제공해주는 kops ...

Let’s Encrypt로 nginx 서버의 SSL 통신 구현하기

2 minute read

1. 공개키 암호화 방식 출처: https://commons.wikimedia.org/wiki/File:Public_key_encryption.svg  공개키 방식은 암호화와 복호화에 같은 키를 사용하는 대칭키 방식과 다르게 누구나 알수 있는 공개키와 소유자만이 알고 있는 비밀키...

k8s ingress 를 활용한 가상 호스팅

less than 1 minute read

1. 개요 “knufesta2019.freshtuna.me” 와 “floweryroad-api.freshtuna.me” 로 접근할수 있는 두개의 웹서비스들을 k8s 오브젝트 ingress 를 통해 가상호스팅 하는 예제를 다루어보고자 한다.

대댓글 구현하기

1 minute read

1. CASE 1 미국 유명 커뮤니티 사이트인 reddit의 무한 대댓글을 모방하여 구현하는 과정을 정리했다.

메모리

8 minute read

1. locality   locality는 temporal locality와 spatial locality가 있다. temporal locality란 어떤 아이템의 일부분이 참조되면, 그부분은 짧은시간내에 재참조될 확률이 높은 성질을 의미한다. spatial locality란 어떤...

OS

6 minute read

1. 정의

데이터 링크 계층 (L2)

2 minute read

1. LAN L2 switch는 3계층의 RIP, OSPF 등의 라우팅 알고리즘을 사용하지 않는다. 오로지 MAC주소만을 사용하여 스위치가 구성한 네트워크안에서 페킷을 주고 받는다.

Computer Network

1 minute read

1. Internet 인터넷은 전세계에 걸친 수백만대의 컴퓨터들의 데이터통신을 위한 네트워크이며 분산 어플리케이션을 위한 infrastructure를 의미한다. 인터넷의 경계 부분에 연결되어있는 컴퓨터들을 host나 endsystem 이라고 부른다. endsystem들은 네트워크의...

유연한 Django 프로젝트 구조잡기

1 minute read

1. 프롤로그 django는 프로젝트 구성에 있어서 자유도가 높은 프레임워크이다. 하지만 자유도가 너무 높은 나머지, 나는 프로젝트 구조를 짜면서 항상 방황해왔었다. 프로젝트 구조에 있어서 항상 정답은 없지만 우리가 개발했던 대학교 축제사이트 ‘머동머동’을 통해 best-pr...

Amazon EC2, S3와 harbor를 활용한 도커 레지스트리 구축

4 minute read

1. 서론 CI/CD 파이프라인은 크게 형상관리, 빌드, 테스트, 배포, 모니터링으로 구성되어있다. 그중 ‘레지스트리’ 는 CI/CD 파이프라인을 통해 빌드된 이미지를 관리하는 서비스이며, 대표적으로 우리가 가장 많이 사용하는 docker hub, AWS ECR 등의 서비스가 ...

CI/CD

less than 1 minute read

1. 거시적인 관점에서의 CI/CD

Docker를 활용한 개발환경 구축하기

5 minute read

1. D O C K E R 도커는 사용자가 원하는 응용 프로그램들을 컨테이너(프로세스) 안에 격리시켜 활용할수 있게 해주는 오픈소스 프로젝트이다. 만약 여러분이 파이썬 환경에서 개발을 한다고 가정해보자. 기존 방식이라면 로컬환경에 루비를 깔고 개발을 시작했겠지만, Docker를 ...

Spring boot 기반의 도커파일 작성

3 minute read

1. 프롤로그 컨테이너 가상화 기법을 사용하면 환경의 제약없이 큰 성능 저하 없이 프로젝트를 딜리버리 할수 있습니다. 이 포스팅에서는 가벼운 이미지를 만들기 위한 시도들에 대해 작성합니다.

알아두면 좋은 리눅스 명령어

4 minute read

1. 현재 디렉토리에서 특정 확장자와 문자열을 포함한 파일검색 (find, grep, xargs, sed, sort) 특정 디렉토리의 파일들을 검색하기 위해서 find 명령어를 사용합니다. # 현재 디렉토리 하위에 있는 모든 파일들을 출력 find .

깊게 공부하는 Python 2편 (lambda)

1 minute read

1. Lambda 1. Lambda란 무엇인가 람다 함수는 다음과 같은 특징을 같는다. 람다 함수는 이름을 지정하지 않아도 된다. 함수의 입력 변수의 이름 또한 필요 없다. 두 개 이상의 입력을 받는 함수는 하나의 입력을 받아 또다른 함수를 출력하는 함수로 다시 쓸 ...

도커 명령어 정리

less than 1 minute read

1. network를 이용한 이미지 실행 ```bash docker network create floweryroad

깊게 공부하는 Python 1편

1 minute read

1. 프롤로그 파이썬 기초 과정에서 다루기 힘든 예제들이나 원리, 패턴등을 정리해보고자 한다.

리액트 라이프사이클

1 minute read

1. 생명주기 리액트에서 아용되는 모든 컴포넌트들은 라이프사이클을 따라서 통해 생성, 업데이트, 제거 된다. 리액트 개발시 생명주기에 대해 이해하는것은 중요하다고 생각하여 이번기회에 정리해보고자 한다. 그리고 개발하면서 새로 알은 지식이 있디면 추가적으로 수정해서 보완해 나가려 한...

관계 데이터 모델, 키, 무결성

less than 1 minute read

1. 관계 데이터 모델의 뜻과 용어정리 자료의 저장형태를 행과 열의 2차원구조로 나타내는것을 의미한다.

함수적종속과 정규화

less than 1 minute read

1. 함수적 종속 Attribute A와 B가 있을때 A의 값을 알면 B의 값 혹은 값의 집합이 결정되면 B는 A에 함수적으로 종속되었다고 한다.

DRF Viewset 과 mixin을 활용하여 깔끔하게 모듈화해보기

2 minute read

1. 프롤로그 DRF가 제공하는 Viewset을 활용하면 APIView와 달리 router와 filter class, 인증 클래스와 연계하여 하이레벨틱한 코딩을 할수 있다. 하지만 풀꽃길 프로젝트를 진행하면서 꽃들을 반환하는 Viewset 로직을 보고 걱정에 휩싸였다. 만약 특수...

칵테일프로젝트에 참여하다

1 minute read

2019년 5월 ‘우물 128번지’에서 주최한 뉴비톤 행사를 통해 처음으로 해커톤을 경험할수 있었다. 그렇게 신나게(?) 웹개발을 공부하고 팀원들과 개발하던 어느날, 우물 128번지에서 네트워킹을 위한 새로운 행사가 열린다는 소식을 들었다. ‘우물 128번지’가 주최하는 행사는...

Django Router 사용하기

1 minute read

1. Django Router 란 Django rest framework를 사용하면 Json object로 decode하거나 object를 json으로 encode 해야하는 수고를 덜어준다. django-router는 drf가 제공하는 viewset과 연계하여 url의 하드코딩을 ...

Django response, reverse

less than 1 minute read

1. HttpResponse 모든 view는 요청에 대해 httpResponse를 반환하도록 설계해야 한다.

Django ORM - Models

less than 1 minute read

1. 프롤로그 ORM이란 프로그래밍언어상의 객체와 관계형 데이터베이스 간의 매핑을 의미한다. RDBMS를 연동할 때, SQL이나 Stored Procedure를 사용할수 있지만 ORM을 사용하면, 좀더 효율적으로 개발이 가능하다.

Django ORM 3편

less than 1 minute read

1. 프롤로그 ORM에서 제공하는 aggregate와 annotate를 활용한 사례를 적어보고자한다.

Django ORM 2편

less than 1 minute read

1. 프롤로그 Django ORM을 활용하면 편리하게 RDBMS의 Relation을 파이썬의 object로 mapping하여 제어 할수 있다.

Django ORM 1편

1 minute read

1. 프롤로그 ORM이란 프로그래밍언어상의 객체와 관계형 데이터베이스 간의 매핑을 의미한다. RDBMS를 연동할 때, SQL이나 Stored Procedure를 사용할수 있지만 ORM을 사용하면, 좀더 효율적으로 개발이 가능하다.

Django 시리얼라이저

1 minute read

1. 프롤로그 Django DRF의 꽃(?)인 시리얼라이저에 대해 연구해본 흔적을 남겨보려 한다.

멋쟁이사자처럼 뉴비톤 후기

2 minute read

5월 4일, 바야흐로 어른이날 전날, ‘우물128번지’ 에서 주관하는 해커톤에 참가하게 되었다. 개발경력 6개월을 위한 뉴비들을 위한 헤커톤, 이름도 Newbieton이다!! 과연 24시간동안 내가 잠안자고 코딩을 할수 있을것인가 걱정이 앞섰지만, 군대에서 오랫동안 야간...

Back to top ↑

Algorithm

소형기관차

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/2616

로봇

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/1726

역사

1 minute read

1. 개요 https://www.acmicpc.net/problem/1613

성곽

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/2234

과제

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/13904

중량 제한

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/1939

두 배열의 합

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/2342

두 배열의 합

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/2143

파일 합치기

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/11066

나머지 합

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/10986

텀 프로젝트

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/9466

사전

less than 1 minute read

1. 개요 https://www.acmicpc.net/problem/1256

카카오 2018 [1차] 셔틀버스

1 minute read

풀이 ```python 문제요약 셔틀은 09:00부터 총 n회 t분 간격으로 역에 도착하며 하나의 셔틀에는 최대 m명의 승객이 탈 수 있다. 가장 늦은 셔틀을 타고 사무실로 갈수 있는 시각을 구하자 같은 시각에 도착한 크루들이 있다면 대기열중에 제일 뒤에 선다. 다음날 셔틀을 타는...

카카오 2022 블라인드, 양궁대회

1 minute read

풀이 ```python 문제요약 전우승자 라이언 중심부터 10점으로 시작 같은 지점에 더 많은 화살을 맞춘 자가 점수 한번만 가져간다. 화살의 갯수가 같으면 어피지가 가져간다. 화살을 둘다 한개도 못맞쳣으면 점수가 없다. 최종점수가 높은사람이 우승자, 최종점수가 같으면 어피치를 우...

다익스트라 알고리즘

1 minute read

1. 개요 다익스트라 알고리즘은, 그래프 상의 한 vertex에서 다른 vertex들에 대해 최단거리를 계산하는 알고리즘이다. BFS 역시 그래프상에서 최단거리를 구하는데 활용할수 있지만, 각 edge에 가중치가 있는 경우 다익스트라 알고리즘등의 다른 방법을 사용해야 한다.

Back to top ↑

Infra

Dockerfile 작성 가이드 (python, Django 시나리오)

2 minute read

1. 프롤로그 컨테이너 가상화 기법을 사용하면 환경의 제약없이 큰 성능 저하 없이 프로젝트를 딜리버리 할수 있습니다. 이 포스팅에서는 Django 기반의 웹 어플리케이션을 동작하기 위한 가벼운 이미지를 만들기 위한 시도들에 대해 작성합니다.

HTTP

4 minute read

0. 하이퍼텍스트 참조(하이퍼링크)를 통해 독자가 한 문서에서 다른 문서로 바로 접근할 수 있는 텍스트

Cookie와 Session, JWT, BFF 패턴

4 minute read

1. Stateless 의 문제점 우리가 인터넷 뉴스 게시판에 댓글을 다는 상황을 예시로 들어보자. 댓글을 달기 위해서는 해당 웹서비스에 회원가입을 한후 로그인을 먼저 진행해야 한다. HTTP는 Stateless 하다는 원칙을 따져보면 사용자와 서버사이에 연결이 이루어지고 로그인을...

Transit Gateway를 통한 중앙 집중식 egress 구축

2 minute read

1. 개요 Transit Gateway는 완전관리형 hub-spoke model 서비스 이다. Transit Gateway는 수천개의 VPC와 연결할수 있고 VPN, Direct Connect와 연결이 가능하며 VPC peering 과 다르게 전이적 라우팅이 가능하다.

Zappa 라이브러리를 사용하여 Django 프로젝트 lambda 배포하기

1 minute read

1. 개요 AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있는 서버리스 컴퓨팅 서비스이다. Lambda를 사용하면 대부분의 인터프리터 언어로 코딩된 애플리케이션(백엔드) 서비스를 실행할수 있다. Zappa는 파이썬 어플리케이션을 쉽게 서버리스 배포...

cloudfront signed cookie를 활용한 회원전용 동영상 서비스 구축

2 minute read

1. 개요 cloudfront는 edge location을 통한 컨텐츠의 빠른 다운로드, 업로드를 지원하는 서비스이다. 이외에도 signed cookie, signed url을 통해 허가된 사용자들에게만 컨텐츠를 제공하는 서비스를 구축할수 있다. 이번 시나리오에서 간단한 비디오 스...

탄력적 ip 를 활용한 고가용성 환경 구축

1 minute read

1. 개요 elastic ip는 변하지 않는 정적 공인 ip 주소 서비스이다. 이미 ec2에 할당된 elastic ip를 다른 ec2에 할당해도 ip주소는 변하지 않기 때문에, 동일한 ip주소로 서비스를 유지할수 있는 장점이 있다. 하지만 로드밸런서와 오토스케일링그룹등의 서비스의 ...

vpc gateway endpoint를 활용하여 안전하게 s3 활용하기

1 minute read

1. 개요 s3 는 기본적으로 아마존 VPC에서 다루는 오브젝트로, ec2에서 s3를 접근하고자 할때 인터넷을 통해서 접근한다. 이걸 방지하기 위해서 나온 개념이 vpc endpoint이며, 이를 통해 ec2에서 아마존 사설망을 통해 s3에 접근할수 있고 인터넷을 통한 부정한 엑세...

Terraform을 활용한 aws 인프라 구축해보기

3 minute read

1. 개요 Infrastructure as a code 도구 를 활용하면 GUI가 아닌 코드를 통해 인프라를 구축할수 있다. 여기까지 들어보면 어떤 장점이 있을가 싶은데, 마우스를 통해 클릭하여 인프라를 생성하는것보다 코드를 작성하는것이 조금더 빠르고, 작성해둔 코드를 똑같은 인프...

Database 요점정리

less than 1 minute read

데이터베이스 관련되어있는 데이터의 모임이다.

쿠버네티스 시크릿 업데이트 하기

less than 1 minute read

1 인증서 제발급후 반영 예제 sudo kubectl create secret tls freshtuna-me --key="/etc/letsencrypt/live/freshtuna.me/privkey.pem" --cert="/etc/letsencrypt/live/freshtuna.m...

logrotate를 활용하여 로그 관리하기

5 minute read

1. 서론 데이터베이스 시스템이나 어플리케이션 서버, 웹 서버를 운용하다 보면 어느순간 쌓여 있는 로그들을 확인할수 있다. 이렇게 쌓인 로그들은 운영중인 시스템에 장애가 발생했을때 원인을 찾기위해 자료로 활용되기 때문에, 로그를 확인하는 습관은 엔지니어가 가져야할 덕목이기도 하다....

kubeadm을 활용하여 웹서비스 배포해보기

8 minute read

1. kubeadm 소개 & 인프라 구성 kubeadm은 쿠버네티스가 제공하는 클러스터를 빠르게 구축할수 있도록 도와주는 도구입니다. kubeadm 외에도 로컬환경에서 간단하게 쿠버네티스를 구축해볼수 있는 minikube, 클라우드 프로비저닝을 기본으로 제공해주는 kops ...

Let’s Encrypt로 nginx 서버의 SSL 통신 구현하기

2 minute read

1. 공개키 암호화 방식 출처: https://commons.wikimedia.org/wiki/File:Public_key_encryption.svg  공개키 방식은 암호화와 복호화에 같은 키를 사용하는 대칭키 방식과 다르게 누구나 알수 있는 공개키와 소유자만이 알고 있는 비밀키...

k8s ingress 를 활용한 가상 호스팅

less than 1 minute read

1. 개요 “knufesta2019.freshtuna.me” 와 “floweryroad-api.freshtuna.me” 로 접근할수 있는 두개의 웹서비스들을 k8s 오브젝트 ingress 를 통해 가상호스팅 하는 예제를 다루어보고자 한다.

메모리

8 minute read

1. locality   locality는 temporal locality와 spatial locality가 있다. temporal locality란 어떤 아이템의 일부분이 참조되면, 그부분은 짧은시간내에 재참조될 확률이 높은 성질을 의미한다. spatial locality란 어떤...

OS

6 minute read

1. 정의

데이터 링크 계층 (L2)

2 minute read

1. LAN L2 switch는 3계층의 RIP, OSPF 등의 라우팅 알고리즘을 사용하지 않는다. 오로지 MAC주소만을 사용하여 스위치가 구성한 네트워크안에서 페킷을 주고 받는다.

Computer Network

1 minute read

1. Internet 인터넷은 전세계에 걸친 수백만대의 컴퓨터들의 데이터통신을 위한 네트워크이며 분산 어플리케이션을 위한 infrastructure를 의미한다. 인터넷의 경계 부분에 연결되어있는 컴퓨터들을 host나 endsystem 이라고 부른다. endsystem들은 네트워크의...

Amazon EC2, S3와 harbor를 활용한 도커 레지스트리 구축

4 minute read

1. 서론 CI/CD 파이프라인은 크게 형상관리, 빌드, 테스트, 배포, 모니터링으로 구성되어있다. 그중 ‘레지스트리’ 는 CI/CD 파이프라인을 통해 빌드된 이미지를 관리하는 서비스이며, 대표적으로 우리가 가장 많이 사용하는 docker hub, AWS ECR 등의 서비스가 ...

CI/CD

less than 1 minute read

1. 거시적인 관점에서의 CI/CD

Docker를 활용한 개발환경 구축하기

5 minute read

1. D O C K E R 도커는 사용자가 원하는 응용 프로그램들을 컨테이너(프로세스) 안에 격리시켜 활용할수 있게 해주는 오픈소스 프로젝트이다. 만약 여러분이 파이썬 환경에서 개발을 한다고 가정해보자. 기존 방식이라면 로컬환경에 루비를 깔고 개발을 시작했겠지만, Docker를 ...

Spring boot 기반의 도커파일 작성

3 minute read

1. 프롤로그 컨테이너 가상화 기법을 사용하면 환경의 제약없이 큰 성능 저하 없이 프로젝트를 딜리버리 할수 있습니다. 이 포스팅에서는 가벼운 이미지를 만들기 위한 시도들에 대해 작성합니다.

알아두면 좋은 리눅스 명령어

4 minute read

1. 현재 디렉토리에서 특정 확장자와 문자열을 포함한 파일검색 (find, grep, xargs, sed, sort) 특정 디렉토리의 파일들을 검색하기 위해서 find 명령어를 사용합니다. # 현재 디렉토리 하위에 있는 모든 파일들을 출력 find .

도커 명령어 정리

less than 1 minute read

1. network를 이용한 이미지 실행 ```bash docker network create floweryroad

관계 데이터 모델, 키, 무결성

less than 1 minute read

1. 관계 데이터 모델의 뜻과 용어정리 자료의 저장형태를 행과 열의 2차원구조로 나타내는것을 의미한다.

함수적종속과 정규화

less than 1 minute read

1. 함수적 종속 Attribute A와 B가 있을때 A의 값을 알면 B의 값 혹은 값의 집합이 결정되면 B는 A에 함수적으로 종속되었다고 한다.

Back to top ↑

theory

DHCP

1 minute read

DHCP 란? DHCP는 “Dynamic Host Configuration Protocol”의 약어로, 동적 호스트 구성 프로토콜을 나타냅니다. 이 프로토콜은 네트워크에서 컴퓨터나 장치가 IP 주소 및 기타 네트워크 구성 정보를 동적으로 할당받을 수 있게 해주는 표준화된 프로토콜입...

파이프와 리다이렉션

1 minute read

스트림 스트림(Stream)은 시간이 경과하며 쌓인 연속적인 데이터를 의미한다.

운영체제 개론

5 minute read

운영체제란 무엇인가? OS is software that operates computer system.

파일처리

1 minute read

파일 이란 무엇인가? field: attribute, data item: object의 특정 정보를 나타냅니다. record: field 등의 모음 = object file: 레코드들의 모임

OS 관점에서의 장애 복구

1 minute read

루트 파일시스템의 용량 초과 루트 파일시스템이 가득 차면 새로운 데이터나 파일을 저장할 수 없게 됩니다.

Spring과 Django

1 minute read

Spring? 넓은 의미의 Spring은 주로 엔터프라이즈급 자바 어플리케이션을 개발하기 위한 자바 기반의 오픈 소스 프레임워크 생태계이다. 좁은 의미의 Spring은 의존성 주입(Dependency Injection)을 통해 객체 간의 결합도를 낮추는 컨테이너 기술을 의미합니다....

객체지향 프로그래밍 v3.0

4 minute read

0. 객체지향 프로그래밍 실세계를 참고하여 객체들을 창조하고,  그 객체들 간의 협력을 통해 프로그램을 개발하는것이다. 객체는 상태를 가지고 있다. 현재 상태 기반으로 책임에 맞는 행동(메소드)를 수행하여 성공/실패여부를 판단하고, 새로운 상태로 갱신한다.

AOP

5 minute read

트랜잭션 코드의 문제 ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException;

전송계층(L4)

4 minute read

개요 OSI 7계층안에서, 프로세스와 프로세스간의 통신을 담당하는 계층을 전송계층이라고 한다. 전송계층의 경우 송신측에서 데이터를 여러조각으로 쪼개는 세그맨테이션과 수신측에서 다시합치는 과정을 진행한다. 만약 데이터를 통으로 보냇을때 실패하면 다시 전송해야 하고, 이는 네트워크 트...

조인

1 minute read

조인 데이터베이스에서의 “조인 (Join)”은 둘 이상의 테이블에서 가져온 데이터를 결합하여 단일 결과 집합을 생성하는 작업을 말한다. 여러 개의 테이블에 분산된 데이터를 합쳐서 하나의 테이블 형태로 만들어주는 것인데 이를 통해 서로 관련된 데이터를 함께 조회하거나 분석할 수 있...

less than 1 minute read

키 데이터베이스에서의 “키”는 데이터베이스 테이블에서 각 레코드를 식별하는 데 사용되는 필드 또는 컬럼이다. 데이터베이스의 내용에의한참조 특징을 잘보여준다.

인덱스

1 minute read

인덱스? 데이터베이스에 빠른 접근을 위해 생성한 자료구조

트랜잭션

2 minute read

트랜잭션 데이터베이스상에서 더이상 쪼갤수 없는 작업의 단위

데이터베이스 개론

less than 1 minute read

데이터베이스란 무엇인가 조회와 조작을 위한 조직화된 데이터

자바와 코틀린 차이점

1 minute read

자바언어의 단점 자바는 타입 시스템과 객체 지향 특성을 강조하기 때문에 코드가 다소 길어질 수 있다. Getter와 Setter 메서드, 예외 처리 등은 간단한 작업에도 많은 코드를 필요로 하게 한다.

표준입력, 표준출력, 표준에러

less than 1 minute read

STDIN, STDOUT, STDERR 표준 스트림(standard stream)이라고 하며 POSIX 기반의 OS에서 기본적으로 제공하는 추상화된 입출력 장치를 의미합니다. 표준입력(STDIN): 표준 입력 장치의 ID 는 숫자로는 0 이며 일반적으로는 키보드가 됩니다. ...

DNS

1 minute read

DNS란

인터넷

less than 1 minute read

인터넷 인터넷(Internet)은 인터넷 프로토콜 스위트(TCP/IP)를 기반으로 하여 전 세계적으로 연결되어있는 컴퓨터 네트워크 통신망을 일컫는 말이다. 인터넷은 월드 와이드 웹, 전자 메일, 파일 공유, 웹캠, 동영상 스트리밍, 온라인 게임, VoIP, 모바일 앱 등 다양한 서...

메모리 관리

2 minute read

메인 메모리 메인메모리(주기억장치)로 프로세스에 필요한 정보를 담는 휘발성 공간

프로세스 관리

4 minute read

프로세스(테스크) 프로그램을 메모리에 올린 동적인 상태이다. 구체적으로 설명하면 OS가 프로그램을 메모리에 올리고 CPU를 위한 PCB(Process Control Block : 프로세스 제어 블록)을 할당한 상태이다. 프로세스들은 커널 공간에서 실행될 때 각자 스택 공간을 할당받...

Java Object class의 메소드들 (이펙티브자바 3장 독후감)

3 minute read

Equals 메소드를 꼭 오버라이딩 해야할까? 반드시 할필요가 없으며, 하더라도 제대로 안하면 찾기 힘든 버그를 발생시킬수 있다. 다음 사항에 속한다면 equals 메소드를 오버라이딩을 하지 않는것이 좋다. 클래스의 인스턴스가 unique 하다면 (equals를 통해 비교할일...

왜 Spring 프레임워크를 사용할까

1 minute read

컴퓨터공학에서의 프레임워크? 특정된 분야(웹, 앱, 윈도우 어플레케이션) 의 앱을 구축하기 위한 필요한 기반 소프트웨어

OSI 7 레이어와 TCP/IP

less than 1 minute read

OSI 7 네트워크의 통신과정을 7단계로 나눈것이다. 왜 나누었는가? 책임을 명확히 분리하면서, 장애발생시 계층별로 살펴보면서 문제의 원인에서 배제시켜가면서 대응을 도울수 있다. 인터넷이 안되면, 랜선을 확인하고, 설정을 확인하고 … ...

Serializable, Jackson

2 minute read

1. Serializable ? java.io 패키지에서 제공하는 직렬화/역직렬화 기능을 제공하는 인터페이스다. 이 인터페이스는 구현해야 하는 메소드는 없지만 jvm에게 표시해주는 marker의 역활을 한다. 이 인터페이스를 상속 받은 클래스는 JVM을 통해 직렬화/역직렬화가 가...

ENUM, 열거형상수

2 minute read

1. enum 상수들의 그룹 기능을 제공하는 프로그래밍 언어의 기능이다. java에서는 클래스를 통해 enum 기능이 구현된다.

Back to top ↑

Django

대댓글 구현하기

1 minute read

1. CASE 1 미국 유명 커뮤니티 사이트인 reddit의 무한 대댓글을 모방하여 구현하는 과정을 정리했다.

유연한 Django 프로젝트 구조잡기

1 minute read

1. 프롤로그 django는 프로젝트 구성에 있어서 자유도가 높은 프레임워크이다. 하지만 자유도가 너무 높은 나머지, 나는 프로젝트 구조를 짜면서 항상 방황해왔었다. 프로젝트 구조에 있어서 항상 정답은 없지만 우리가 개발했던 대학교 축제사이트 ‘머동머동’을 통해 best-pr...

DRF Viewset 과 mixin을 활용하여 깔끔하게 모듈화해보기

2 minute read

1. 프롤로그 DRF가 제공하는 Viewset을 활용하면 APIView와 달리 router와 filter class, 인증 클래스와 연계하여 하이레벨틱한 코딩을 할수 있다. 하지만 풀꽃길 프로젝트를 진행하면서 꽃들을 반환하는 Viewset 로직을 보고 걱정에 휩싸였다. 만약 특수...

Django Router 사용하기

1 minute read

1. Django Router 란 Django rest framework를 사용하면 Json object로 decode하거나 object를 json으로 encode 해야하는 수고를 덜어준다. django-router는 drf가 제공하는 viewset과 연계하여 url의 하드코딩을 ...

Django response, reverse

less than 1 minute read

1. HttpResponse 모든 view는 요청에 대해 httpResponse를 반환하도록 설계해야 한다.

Django ORM - Models

less than 1 minute read

1. 프롤로그 ORM이란 프로그래밍언어상의 객체와 관계형 데이터베이스 간의 매핑을 의미한다. RDBMS를 연동할 때, SQL이나 Stored Procedure를 사용할수 있지만 ORM을 사용하면, 좀더 효율적으로 개발이 가능하다.

Django ORM 3편

less than 1 minute read

1. 프롤로그 ORM에서 제공하는 aggregate와 annotate를 활용한 사례를 적어보고자한다.

Django ORM 2편

less than 1 minute read

1. 프롤로그 Django ORM을 활용하면 편리하게 RDBMS의 Relation을 파이썬의 object로 mapping하여 제어 할수 있다.

Django ORM 1편

1 minute read

1. 프롤로그 ORM이란 프로그래밍언어상의 객체와 관계형 데이터베이스 간의 매핑을 의미한다. RDBMS를 연동할 때, SQL이나 Stored Procedure를 사용할수 있지만 ORM을 사용하면, 좀더 효율적으로 개발이 가능하다.

Django 시리얼라이저

1 minute read

1. 프롤로그 Django DRF의 꽃(?)인 시리얼라이저에 대해 연구해본 흔적을 남겨보려 한다.

Back to top ↑

infra

Back to top ↑

spring

JPA 정리

8 minute read

ORM(Object Relational Mapping) ORM은 객체 지향 프로그래밍 언어에서 관계형 데이터베이스의 데이터를 객체로 매핑하여 데이터베이스와의 변환 작업을 자동화하는 기술을 의미한다.

스프링 프레임워크 구조

less than 1 minute read

1. 스프링 스프링 프레임워크와 스프링 프로젝트 생태계의 라이브러리를 Spring으로 통으로 일컬어서 부른다.

Back to top ↑

container

Dockerfile 작성 가이드 (python, Django 시나리오)

2 minute read

1. 프롤로그 컨테이너 가상화 기법을 사용하면 환경의 제약없이 큰 성능 저하 없이 프로젝트를 딜리버리 할수 있습니다. 이 포스팅에서는 Django 기반의 웹 어플리케이션을 동작하기 위한 가벼운 이미지를 만들기 위한 시도들에 대해 작성합니다.

Spring boot 기반의 도커파일 작성

3 minute read

1. 프롤로그 컨테이너 가상화 기법을 사용하면 환경의 제약없이 큰 성능 저하 없이 프로젝트를 딜리버리 할수 있습니다. 이 포스팅에서는 가벼운 이미지를 만들기 위한 시도들에 대해 작성합니다.

Back to top ↑

life

칵테일프로젝트에 참여하다

1 minute read

2019년 5월 ‘우물 128번지’에서 주최한 뉴비톤 행사를 통해 처음으로 해커톤을 경험할수 있었다. 그렇게 신나게(?) 웹개발을 공부하고 팀원들과 개발하던 어느날, 우물 128번지에서 네트워킹을 위한 새로운 행사가 열린다는 소식을 들었다. ‘우물 128번지’가 주최하는 행사는...

멋쟁이사자처럼 뉴비톤 후기

2 minute read

5월 4일, 바야흐로 어른이날 전날, ‘우물128번지’ 에서 주관하는 해커톤에 참가하게 되었다. 개발경력 6개월을 위한 뉴비들을 위한 헤커톤, 이름도 Newbieton이다!! 과연 24시간동안 내가 잠안자고 코딩을 할수 있을것인가 걱정이 앞섰지만, 군대에서 오랫동안 야간...

Back to top ↑

Python

깊게 공부하는 Python 2편 (lambda)

1 minute read

1. Lambda 1. Lambda란 무엇인가 람다 함수는 다음과 같은 특징을 같는다. 람다 함수는 이름을 지정하지 않아도 된다. 함수의 입력 변수의 이름 또한 필요 없다. 두 개 이상의 입력을 받는 함수는 하나의 입력을 받아 또다른 함수를 출력하는 함수로 다시 쓸 ...

깊게 공부하는 Python 1편

1 minute read

1. 프롤로그 파이썬 기초 과정에서 다루기 힘든 예제들이나 원리, 패턴등을 정리해보고자 한다.

Back to top ↑

network

네트워크 계층(L3) 개론

6 minute read

개요 네트워크 계층은 네트워크에서 다른 네트워크로의 데이터 패킷을 송수신하는 데 중요한 역할을 하는 OSI(Open Systems Interconnection) 7계층 중 3계층에 속하는 계층이다.

Back to top ↑

React

리액트 라이프사이클

1 minute read

1. 생명주기 리액트에서 아용되는 모든 컴포넌트들은 라이프사이클을 따라서 통해 생성, 업데이트, 제거 된다. 리액트 개발시 생명주기에 대해 이해하는것은 중요하다고 생각하여 이번기회에 정리해보고자 한다. 그리고 개발하면서 새로 알은 지식이 있디면 추가적으로 수정해서 보완해 나가려 한...

Back to top ↑

fosslight

Back to top ↑

ETC

Back to top ↑

java

해시테이블

less than 1 minute read

0. 해시함수 임의의 길이의 데이터를 고정된 길이의 데이터로 변환하는 함수이다

Back to top ↑

dataStructure

트리

2 minute read

트리 트리는 순환이 발생하지 않는 그래프 자료구조이다. 이 특징으로 인해 한 노드를 특정하여 루트노드로 정하게 되면, 각 노드들은 한개의 부모노드와 여러 자식노드를 가질수 있어 데이터를 계층적으로 구조화 할수 있다.

Back to top ↑

linux

Back to top ↑

aws

Back to top ↑