본문 바로가기

분류 전체보기

DB INDEX란 ? 1) INDEX의 의미 RDBMS에서 검색속도를 높이기 위해 사용하는 data stucture 입니다. 해당 TABLE의 컬럼을 색인화(따로 파일로 저장)하여 검색시 해당 TABLE의 레코드를 full scan 하는게 아니라 색인화 되어있는 INDEX 파일을 검색하여 검색속도를 빠르게 합니다. 이런 INDEX는 TREE구조로 색인화합니다. RDBMS 에서 사용하는 INDEX는 Balance Search Tree 를 사용합니다. 실제로는 RDBMS 에서 사용되는 B-Tree 는 B-Tree 에서 파생된 B+ Tree 를 사용한다고 합니다. 참고로 ORACLE이나 MSSQL에서는 여러종류의 TREE를 선택하여 사용가능합니다. 2) INDEX의 원리 INDEX를 해당 컬럼에 주게 되면 초기 TABLE생성시 만.. 더보기
textarea 글자수 세기 0자/1000자 $("#content").on("keyup",function(event){ checkTextAreaMaxLength(this,event); }); function checkTextAreaMaxLength(textBox, e) { $(".char-count").html(textBox.value.length); return true; } 더보기
리눅스, 도커, AWS 리눅스(Linux) 웹 서비스는 어딘가 데이터센터에 있는 물리적 서버에 서버용 운영체제를 돌리면서, 그 위에 실행해서 운용합니다. 서버용 운영 체제로, 상용 고가 유닉스 시스템을 선호하는 곳도 있지만, 언젠가부터 리눅스가 많이 쓰이지요. 이제는 심지어, 금융권인 카카오 뱅크에서도 x86에 리눅스를 쓰는 게 화제가 되고 있으니, 사실상 다 써도 된다고 보셔도 될 것 같습니다. 저도 거의 리눅스만 쓰는 업계 출신이라서 그런지 “리눅스 쓰는 게 뭐가 어때서?”라는 생각인데, 금융권 분들은 파격이라고 여기나 봅니다. 아무튼, 서버 운영체제로 리눅스를 쓰면 되는데, 이 리눅스에는 배포판이라는 게 여러 종류 있습니다. 다 리눅스인데, 단체별로 어떻게 소프트웨어 패키지를 묶어서 배포하느냐가 다르고 아주 조끔씩 다르기.. 더보기
Spring PSA Portable Service Abstraction 환경의 변화와 관계없이 일관된 방식의 기술로의 접근 환경을 제공하려는 추상화 -> 스프링 웹 MVC @Transactional를 붙이면 Transaction처리가 됨 더보기
SPRING AOP 비즈니스 로직이 아닌 보안, 트랜잭션, 성능 검사(?) 다른 곳으로 빼서 한번에 관리 코드가 없지만 코드가 있는 것 처럼 실행된다. 방법 컴파일 A.java -> (AOP) -> A.class (AspectJ 로 컴파일로) 바이트코드 조작 A.java -> A.class ---(AOP) 메모리로 올릴 때 프록시 패턴(스프링 AOP) 디자인 패턴을 사용해서 AOP와 같은 효과를 내는 것 create annotation을 해서 aop 구현 @aspect 도 만들고 @around를 통해 공통코드가 들어감 or @after @before 등등.... 더보기
의존성 주입 Dependency Injection 생성자를 통해 객체를 만드는 대신에 @Autowired를 통해 빈으로 등록된 객체를 가져올 수 있다. 생성자 필드에서 Autowired로 받기 Setter에 붙이기 private final PetRepository pets; public OwnerController(OwnerRepository clinicService, PetRepository pets) { this.owners = clinicService; this.pets = pets; } final을 붙일 경우 다시 변수값이 바뀌지 않게 하기 위해 초기화 해주어야 한다. 더보기
ajax 끝판왕 설명 만들기(Spring ajax는 따로...) 비동기 통신으로 페이지의 새로 고침이 일어나지 않아도 서버로부터 데이터를 가져올 수 있습니다. Ajax는 JavaScript의 라이브러리중 하나이며 Asynchronous Javascript And Xml(비동기식 자바스크립트와 xml)의 약자입니다. 브라우저가 가지고있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부만을 위한 데이터를 로드하는 기법 이며 Ajax를 한마디로 정의하자면 JavaScript를 사용한 비동기 통신, 클라이언트와 서버간에 XML 데이터를 주고받는 기술이라고 할 수 있겠습니다. 비동기(async)방식이란? 비동기 방식은 웹페이지를 리로드하지 않고 데이터를 불러오는 방식입니다. 이 방식의 장점은 페이지 리로드의 경우 전체 리소스를 다시 .. 더보기
Spring bean이란 ? Spring에서 POJO를 Beans라고 부른다. 보통 설정 메타 데이터(XML 파일)에 의해 생성된다. applicationcontext 가 알고있는 객체 bean cf) Applicationcontext -> 오브젝트 생성, 관계설정, 만들어지는 방식, 자동생성, 후처리등 여라가지 일을 하고 BeanFactory의 상속을 받고 있다. ApplicationContext는 Pre-loading을 하여 즉시 인스턴스를 만들고 BeanFactory는 lazy-loading을 하여 요청 받는 시점에서 인스턴스를 만든다. 등록하는 방법 Component Scanning @Repository @Service @Controller @Configuration @Component build 하면서 annotation이.. 더보기