일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 인프런김영한
- aop
- 자바스터디
- 이펙티브 자바
- 자바예외
- DDD
- MariaDB
- jpa
- 이펙티브자바
- 도메인 주도 개발 시작하기
- CleanCode
- 클린코드
- 자바
- 혼공SQL
- 알고리즘
- 이팩티브 자바
- 기술면접
- SQL쿡북
- java
- vue.js
- mysql
- react
- 인프런백기선
- 자료구조
- 인덱스
- 스프링부트와AWS로혼자구현하는웹서비스
- 네트워크
- AWS
- 알고리즘분석
- AWS RDS
- Today
- Total
목록전체 글 (272)
기록이 힘이다.

SQL은 복잡한 문자열 조작을 수행하도록 설계되지 않은 만큼, SQL에서 문자열로 작업하는 작업은 간혹 번거롭고 짜증 나는 일일 수 있습니다. SQL은 좋기도 하지만, 불편하기도 하며, 때로는 형편없습니다. 문자열을 작업할 때는 SQL에서 수행할 수 있는 작업과 수행할 수 없는 작업을 더 잘 이해할 수 있습니다. 대부분의 경우, 문자열 구문 파싱 및 변환이 얼마나 쉬운지를 알면 놀랄 뿐만 아니라, 특정 작업을 수행하는 데 필요한 SQL의 형태에도 놀랄 것입니다. 이어지는 많은 레시피는 현재 이 책에서 다루는 모든 DBMS에서 사용할 수 있는 TRANSLATE 및 REPLACE 함수를 사용합니다. 다만 예외적으로 MySQL은 REPLACE만 쓸 수 있습니다. 마지막에 나오는 중첩된 REPLACE 함수로 T..
https://fierycoding.tistory.com/69 [인증/인가]Session(세션)과 Token(토큰)(JWT)의 차이점 바로 직전의 통신도 기억 못하는 HTTP HTTP는 stateless한 특성을 가지기 때문에 각 통신의 상태는 저장되지 않습니다. 하지만 우리가 웹 서비스를 사용할 때를 생각해봅시다. 매번 새 페이지를 요청 fierycoding.tistory.com 세션과 토큰 모두 존재 목적은 거의 같지만 차이점은 존재합니다. 그 중 가장 큰 차이점은 세션은 데이터베이스 서버에 저장된다는 것, 토큰은 클라이언트 측에서만 저장한다는 점입니다. 차이점 1. 사이즈 세션 < 토큰 차이점 2. 안전성 세션 세션은 서버측에서 저장/관리하기 때문에 상대적으로 온전한 상태를 유지하기 유리합니다. 하..

MVC 패턴(Model-View-Controller) : 디자인 패턴 중 하나이다. 모델(Model)은 애플리케이션의 데이터인 데이터베이스, 상수, 변수 등을 뜻합니다. 뷰(View)는 inputbox, checkbox, textarea 등 사용자 인터페이스 요소를 나타냅니다. 화면 컨트롤러(Controller)는 하나 이상의 모델과 하나 이상의 뷰를 잇는 다리 역할을 하며 이벤트 등 메인 로직을 담당합니다. 또한 모델과 뷰의 생명주기도 관리하며, 모델이나 뷰의 변경 통지를 받으면 이를 해석해서 각각의 구성 요소에 해당 내용에 대해 알려줍니다. 애플리케이션의 구성 요소를 세 가지 역할로 구분하여 개발 프로세스에서 각각의 구성요소에만 집중해서 개발할 수 있습니다. 재사용성과 확장성이 용이하다는 장점이 있고..
public class TopLine{ //코드 9-1 try-finally - 더 이상 자원을 회수하는 최선의 방책이 아니다! 47쪽 static String firstLineOfFile(String path) throws IOException{ BufferedReader br = new BadBufferedReader(new FileReader(path)); try{ return br.readLine(); }finally{ br.close(); } } public static void main(String[] args) throws IOException{ System.out.println(firstLineOfFile("pom.xml")); } } public class BadBufferedReader..
Finalizer 공격 import java.math. BigDecimal; public class Account { private String accountId; public Account(String accountId){ this.accountId = accountId; if(accountId.equals("푸틴")){ throw new IllegalArgumentException("푸틴은 계정을 막습니다."); //finalizer를 통해 보낼 수 있다 } } public void transfer(BigDecimal amount, String to){ System.out.printf("transfer %f from %s to %s\n", amount, accountId, to); } } public..

코틀린을 만든 곳은 jetBrains 로 IDE를 만드는 회사(Intellij)이다. JetBrains의 70%는 Java 코드로 작성되어 있다. 그래서 호환이 가능한 Kotlin이 생겨나게 되었고 2017년에 엄청난 인기를 자랑하게 된다. 왜냐하면 구글이 안드로이드 앱을 만들기 좋은 언어로 코틀린을 추천했기 때문이다. 1. 100% 호환의 비결 Kotlin에서 Javs 코드를 Java에서 Kotlin 코드를 서로 부를 수 있다. Compilation은 항상 Interpretation보다 빠르다. 그러나 Compilation은 플랫폼에 의존적이다. 윈도우, 리눅스, 맥으로 컴파일 하려고 하면 각각 다르게 작업 Interpretation은 플랫폼 독립적이다. Java Virtual Machine은 Comp..

특정 스키마에 대한 정보를 찾을 수 있는 레시피를 제공합니다. 예를 들어 어떤 테이블을 생성했는지 또는 어떤 외래 키가 인덱싱되지 않았는지를 알고자 할 수 있습니다. 이 책의 모든 RDBMS는 그러한 데이터를 얻기 위한 테이블과 뷰를 제공합니다. 5장의 레시피를 활용하면 해당 테이블 및 뷰에서 필요한 정보를 얻을 수 있습니다. 5.1 스키마의 테이블 목록 보기 Oracle의 시스템 뷰와 DB2의 시스템 테이블은 벤더에 특화되어 있습니다. 반면에 PostgreSQL, MySQL 및 SQL Server는 ISO SQL 표준에 의해 정의된 뷰 집합인 정보 스키마(information schema)를 지원합니다. 따라서 세 데이터베이스 모두에 대해 같은 쿼리를 수행할 수 있습니다. 5.2 테이블의 열 나열하기 ..
소프트웨어적인 대표적인 캐시로는 웹 브라우저의 작은 저장소 쿠키, 로컬 스토리지, 세션 스토리지가 있습니다. 쿠키 쿠키는 만료기한이 있는 키-값 저장소입니다. same site 옵션을 strict로설정하지 않았을 경우 다른 도메인에서 요청했을 때 자동 전송되며, 4KB까지 데이터를 저장할 수 있고 만료기한을 정할 수 있습니다. 쿠키를 설정할 때는 document.cookie로 쿠키를 볼 수 없게 httponly 옵션을 거는 것이 중요하며, 클라이언트 또는 서버에서 만료기한 등을 정할 수 있는데 보통 서버에서 만료기한을 정합니다. 로컬 스토리지 로컬 스토리지는 만료기한이 없는 키-값 저장소입니다. 10MB까지 저장할 수 있으며 웹 브라우저를 닫아도 유지되고 도메인 단위로 자장, 생성됩니다. HTML5를 지..