공부하고 기록하는, 경제학과 출신 개발자의 노트

분류 전체보기 501

[Design Pattern] Singleton

SingleTon 객체가 많아지면 리소스 사용이 많아지고, 리소스가 많으면 프로그램 전체 속도가 떨어진다. -> 생성할 수 있는 객체의 최대 개수를 제한할 필요가 생김 Singleton 패턴: 객체 생성을 단 한번만 허용하는 패턴. 객체의 생성개수 제한이라는 조건이, 객체를 활용하려는 쪽에서 일일이 신경쓰지 않아도 되도록 하는 게 핵심. 용례 DB Connection Pool Log Writer ... @Getter public class Database { private static Database singleton; private String name; // getInstance()로 객체 불러오기. // 객체가 없을 경우 singleton 변수에 새 인스턴스를 할당하고, // 있으면 해당 객체를 그..

OAuth 정리

OAuth 데이터를 간편하고 안전하게 주고받기 위한 표준. ID와 비밀번호 대신 Access Token으로 사용자를 식별한다. 토큰은 API를 제공하는 리소스 서버만 발급할 수 있으며, 일정시간이 지나면 폐기할 수 있다. 토큰마다 필요한 권한만 부여할 수 있으므로, 서버가 클라이언트의 접근권한을 쉽게 제어할 수 있다. ex) 페이스북 API를 사용하는 모바일 앱의 경우 Read Only 권한을 지닌 Access Token을 생성할 수 있다. 모바일 앱이 페이스북 인증을 지원할 때 이 토큰만 발급받는다면, 해당 모바일 앱 사용자는 페이스북에 글을 게시할 수 없다. 사용자 ID와 비밀번호가 필요하지 않다. 페이스북 페이지에서 로그인하면, 페이스북 측에서 해당 모바일 앱에 사용자가 승인한 권한만 있는 토큰을 ..

Spring AOP 요약

www.inflearn.com/course/spring-framework_core# 스프링 프레임워크 핵심 기술 - 인프런 이번 강좌는 스프링 부트를 사용하며 스프링 핵심 기술을 학습합니다 따라서 스프링 부트 기반의 프로젝트를 사용하고 있는 개발자 또는 학생에게 유용한 스프링 강좌입니다. 중급이상 웹 개발 www.inflearn.com Spring 핵심기술의 AOP 부분 정리. Spring AOP 스프링 AOP 구현체 제공, 자바에서 제공하는 구현체 (aspect-j) 와 연동. 스프링 txn, 캐시 등 여러 기능에 적용됨 흩어진 Aspect를 모듈화할 수 있는 프로그래밍 기법을 의미함. OOP의 보완관계. 여러 클래스에 걸쳐서 비슷한 코드를 사용해야 하는 경우 Transaction 처리. setAuto..

HTTP

목차 HTTP 특징 구조 메소드 URL과 URI HTTP 버전별 특징 nginx와 apache HTTP 서버와 클라이언트가 텍스트, 이미지, 동영상 등의 데이터를 주고받을 때 사용하는 프로토콜. 기본적으로 텍스트를 전송한다. 특징 TCP/IP 기반으로 한 지점에서 다른 지점으로 요청을 보내고 받음. 무상태성 (Stateless) 클라이언트와 서버가 각각 HTTP로 통신할 때, 상대방의 State를 기억하거나 저장하지 않는다. 비연결성 (Connectionless) 요청을 받은 서버가 응답을 마치면, 소켓을 유지하지 않고 연결을 끊는다. 요청에는 반드시 응답이 일대일로 대응된다. 서버가 응답을 보내더라도, 클라이언트가 받지 못할 수 있으므로 클라이언트가 각 상황별 대응을 결정해야 함 클라이언트는 일정 시간..

학교에서 알려주지 않는 17가지 실무 개발 기술

웹 개발을 하다 보면 겪게 되는 문제, 듣게 되는 단어들을 해설한 책 신입 기술면접에도 도움이 될 법한 키워드도 많다. 주니어 개발자 / 개발자 지망생이라면 일독해볼 만한 책 개발자를 지망하지만 관련 학과를 다니지 않았거나, 프레임워크의 사용방법부터 익히고 구현하면서 개발에 입문한 사람들에게 특히 유용한 책이다. 어렵게 쓰인 책도 아니고, 진입장벽이 높지도 않다. 지식이 필요한 주니어 개발자 또는 개발 프레임워크를 익히며 개발자를 꿈꾸게 된 비전공자 / 비개발자에게 기초를 제공한다. 인코딩 오류가 날 때마다 접했던 단어들 - UTF-8, UTF-16, euc-kr 등 - 이 어떤 의미가 있으며 언제 사용하는 게 적절한지 웹 서버 생성해서 올렸더니 CORS 에러가 발생할 때 왜 발생하는지, 어떤 문제를 해..

세줄요약 독서 2020.12.03

[Python] 프로그래머스. 스타 수열 (Level 3)

programmers.co.kr/learn/courses/30/lessons/70130 코딩테스트 연습 - 스타 수열 programmers.co.kr 문제의 조건에 따르면 "스타수열을 생성하기 위한 핵심 공통값"이 반드시 존재해야 한다. {x[0], x[1]} ... {x[2n-2], x[2n-1]} 의 공통원소가 1개 이상이기 위해서는, 각 쌍마다 공통값이 최소 한 개는 있어야 한다는 의미. 따라서, a 배열에 있는 각각의 원소를 기준으로 '해당 원소가 공통값으로 적용되는 스타수열의 길이' 최댓값을 찾아야 한다. 이 때, 각 원소가 a 배열에 몇 번 등장했는지가 중요하다. 배열에 등장한 횟수가 많을수록, 스타 수열의 길이가 길어질 수 있기 때문. 예컨대 입출력 예시 #3을 보면 [0,3,3,0,7,0,..

[Python] 프로그래머스. 내적 (Level 1)

programmers.co.kr/learn/courses/30/lessons/70128 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr def solution(a, b): return sum([i*j for i, j in zip(a,b)])

IBM Kubernetes Cluster에 SpringBoot Application 구동 실습하기 - 2. deploy

[IBM Clouders - Indigo Blue 포스트] IBM Cloud에서는 신용카드를 등록한 Pay-go 계정이 있으면 무료 Kubernetes Cluster를 생성할 수 있다. 한 개의 클러스터를 생성할 수 있고, 30일이 지나면 자동으로 삭제되기 때문에 과금 염려도 없다. Kubernetes 환경을 가볍게 실습할 수 있는 조건이다. SpringBoot로 생성한 자바 웹 어플리케이션을 Kubernetes Cluster에 구동하는 실습을 해 보았다. DockerFile을 생성한 경로에 Kubernetes에 Deploy하기 위한 yaml파일 Deployment.yaml을 생성한다. apiVersion: apps/v1 kind: Deployment metadata: name: app-h2db labe..

IBM Kubernetes Cluster에 SpringBoot Application 구동 실습하기 - 1. dockerizing and 환경설정

[IBM Clouders - Indigo Blue 포스트] IBM Cloud에서는 신용카드를 등록한 Pay-go 계정이 있으면 무료 Kubernetes Cluster를 생성할 수 있다. 한 개의 클러스터를 생성할 수 있고, 30일이 지나면 자동으로 삭제되기 때문에 과금 염려도 없다. Kubernetes 환경을 가볍게 실습할 수 있는 조건이다. SpringBoot로 생성한 자바 웹 어플리케이션을 Kubernetes Cluster에 구동하는 실습을 해 보았다. 생성한 스프링부트 프로젝트는 www.edwith.org/boostcourse-web/joinLectures/12943 [부스트코스] 웹 프로그래밍 강좌소개 : edwith - 부스트코스 www.edwith.org 에서 확인할 수 있는 실습 예제를 직접..