분류 전체보기

일반적으로는 인스턴스를 만들기 위해 new를 이용하지만 정적 팩토리 메소드는 return에 new한 객체를 반환해주는 형태이다public class MacBook { String color; String cpu; String ram; private MacBook(String color, String cpu, string ram) { this.color = color; this.cpu = cpu; this.ram = ram; } public static MacBook of(String color, String cpu, string ram) { return Constructor(color, cpu, ram); ..
spring을 사용할 때layard 아키텍처를 이용해서 Controller - service - repository 구조로 구성했는데 이렇게 되면 service에 비즈니스 로직이 들어가게 된다. 그러면 테스트 코드를 만들고 실행할떄 테스트 DB도 연결되고 스프링도 실해되어야 해서 복잡해 지고 테스트하기 힘들어 진다. 이런 방식을 transaction script 라고 부른다 이것을 해결하기 위해 Domain service라는 계층을 만든다 Controller - serivce - domain - repositorydomain에서 비즈니스 로직이 메소드로 구성되고 service에서 이 domain을 가져다 쓰면 된다.
Data Type Strings 문자열, 숫자, serialized object(JSON string)등 저장 SET name redis → name = "redis" MSET name pencil price 100 → name = "pencil", price = "100" MGET name price → 1) "pencil" 2) "100" redis는 숫자도 문자형으로 저장한다 대신 문자형 숫자는 사칙연산이 가능하다. INCR price → price + 1 INCRBY price 100 → price + 100 redis에서는 변수명에 :을 사용하여 의미별로 구분을 해주면 좋다 SET professor:database:ko mr.kim Strings Commands Lists String을 Doub..
· Library
처음 이 책의 제목을 봤을때는 굉장한 호기심으로 목차를 펼쳐 보았다. 아니나 다를까 제목보다 훨씬 더 흥미를 이끄는 소제목들이 목차에 나열되어 있는것이 아닌가. 이 책은 소제목을 읽는 것만으로도 재미를 주는 책이다. 배움의 의미 나는 무엇을 알고 무엇을 모르는가 철학을 공부한다는 것은 기본적으로 '내가 무엇을 모르는지' 그리고 '무엇을 아는지'를 공부하는 것으로부터 시작하다. 철학 뿐만 아니라 모든 배움이 그러한것 같다. "내가 모르는 것은 무엇인가. 그렇다면 아는 것은 무엇인가. 내가 안다는 것은 진정으로 알고 있는것인가? 그렇다면 안다는 것은 무엇인가" 안다는 것에대한 생각은 이전 글인 여행의 이유에서 고민해 보았다. 빵 한개로 배를 채우고, 책 열 권으로 정신을 채워라 채워지지 않는 욕구로 말미암아..
백엔드 서버에서 DB 서버로 연결을 보내는 방식은 크게 매번 DB서버에 연결하여 요청을 보내고 연결을 종료한다. connection pool을 이용한다. 이렇게 나누어진다. 먼저 첫번째를 살펴보면 Connection 백엔드 서버에서 쿼리를 전송하기 위해서 DB서버에 연결을 해야하는데, 이때 TCP/IP 연결(3 way handshake)를 해준다. 이렇게 백엔드 서버와 DB서버가 연결 되었다면 백엔드 서버에서 쿼리를 전송하고 DB서버에서 응답하고, 연결을 종료한다. 이것이 기본적인 백엔드 서버와 DB서버 간의 통신이다. 하지만 이 방식의 경우에는 여러 단점이 존재한다. 매번 쿼리를 전송할때마다 connection을 다시 맺어야 함으로 시간적인 손실이 발생한다. 매번 connection을 realse 해주..
캐시와 캐싱 캐시는 데이터를 임시로 복사해두는 임의의 장소이며 , 캐싱은 주어진 리소소의 복사본을 저장하고 있다가 요청 시에 제공하는 기술이다 캐시는 크게 사설(private) 혹은 공유(shared) 캐시로 나누어 진다. 공유 캐시는 웹 브라우저와 서버 사이에서 동작하는 캐시이며, 한명 이상의 사용자가 재사용 할 수 있도록 응답을 저장하는 캐시이다.(중간 서버에 저장 가능) 사설 캐시는 웹 브라우저에 저장되는 캐시이며 한 사용자가 전용으로 사용한다. HTTP 캐시들은 일반적으로 GET Method에만 응답만을 캐싱한다. Cache-Control HTTP Header에는 Cach-Control이 있다. Cache-Control: no-store 캐시는 응답과 요청에 어떤 것도 저장 해서는 안된다. Cac..
· Library
감정을 선택하라 -크리스 코트먼, 해롤드 시니츠키 감정은 이해할 수 있고 선택할 수도 있다 우리의 감정 상태에 영향을 미치는 것은 바로 우리 자신이다. 주어진 사건에 대한 우리의 태도와 믿음이 우리의 감정 반응을 좌우한다. 만약 우리가 노력을 한 무언가가 실패했을 때, 누군가는 "나는 노력해도 안 되는 사람이야"라고 생각하면 불행한 사람이 되는 것이고, "실패는 했지만 너무 재미있게 했다. 이 일이 나랑 맞는 것 같아"라고 생각하는 사람은 행복한 사람이 된다. 즉, 우리가 긍정적인 사고를 할수록 우리는 행복해지면 상황과 그 순간이 우리의 감정을 결정하는 것이 아니다. 투자를 가장 많이 한 일에 가장 감정적이다. 우리는 투자하지 않은 일에 감정을 느끼지 않는다. 예를 들어 캐나다의 대선결과에 아무런 감정이..
Authentication(인증) 인증이란 사용자의 신원을 확인하는 것이며, 로그인(비밀번호), 생체인식, 일회용 핀등이 있다. 인증 요소(Authentication Factors)들로는 설명 예시 지식기반 사용자만 알고 있는 것 id, password, pin번호 등 소유기반 사용자만 소유하는 것 일회용 비밀번호 토큰, OTP id카드 등 속성기반 생체기반의 사용자의 고유 한 것 지문, 목소리, 홍체 등 Authorization(인가) 인가란 권한 부여를 의미한다. Authentication Authorization 사용자가 볼 수 있는가? O X 사용자가 직접 변경할 수 있는가? 부분적 가능 불가능 데이터 전송 ID 토큰 사용 액세스 토큰 사용 https://www.okta.com/kr/identit..
HTTP 상태 코드는 request가 성공적으로 완료되었는지 알려준다. 상태 코드 1xx: 정보 응답 100번대는 요청이 수신되어 처리중이라는 의미다. 100 Continue: 클라이언트의 요청을 받았으며 작업을 계속 진행중 101 Switching Protocol: 프로포콜을 전환라는 의미이며, response header에 응답이 들어간다. 102 procession(WebDAV): 요청을 수신하여 처리중 2xx: 성공 응답 요청이 정상 처리되었다. 200 OK: 요청 성공 201 Created: 요청에 성공해서 새로운 리소스가 생성 됨, response header의 Location에 생성된 리소스를 알려준다. 202 Accepted: 요청이 접수되었으나 처리가 완료되지 않았다. 204 No Con..
간식타임
'분류 전체보기' 카테고리의 글 목록 (2 Page)