잡다한 기술 지식 10
1. Hash Table 해쉬 테이블, 즉 해시 맵에서 개발자들이 사용하지만, 실제 내부 동작에 대해서는 잘 모르는 경우가 많다. 예를 들어서, hash 에 smith, 1234 가 들어있다고 가정하자 key는 smith 이고, 중간에 hash function 을 통해서, buckets에 들어간다. 이 해쉬 펑션은 value의 index를 알아내기 위한것이고, 해당 펑션 수행이후 값에 대한, index주소를 알아내서 값을 알아오게 된다. 잘 정리된 그림을 보면 바로 이해가 된다. 이 구조로 저장과, 삭제가 아주 빠르다. hash function 은 key를 array size로 나눈다. 그렇기 때문에 충돌 방식이 발생한다. 1,11,21 은 같은, 주소를 갖게 되는 것이다. 이러한 충돌 방식은 여러 구현..
[JPA] JPA 영속 컨텍스트
JPA는 느끼다싶이 객체를 넘겨서 대부분의 데이터작업을 진행한다. 그런데, 쿼리가 복잡하거나, 통계성쿼리가 필요하다면? 이건 객체로 푸는 것보다 쿼리로 푸는것이 맞다. 이때 JPA에서는 JPQL이라는 녀석으로 극복할수있게해준다. 근데, JPQL은 조금 다르다. 예를들어, MEMBER 테이블에서, 해당 대상을 전부 가져오는 걸 생각해보자 테이블 대상이라면, select * from member 뭐 이런식으로나, select id from member 이런식으로, 짠다. jpql도 역시 객체 지향쿼리여도 sql짜듯이 짜면된다. 강점은 언뜻 보기에 두가지 정도가있다. 1. 쿼리를 객체에 맞춰서 짜고, 방언에 따라, mysql,oracle등으로 자동 변환. 2. 페이징 관련 속성 set식으로, 자동 생성 쉽게 ..
잡다하지만 필요한 기술지식 7
1. http랑 https 차이? http 란 hyper text transfer protocol이고, 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다. 80포트를 사용하고, TCP/IP위에서 작동한다. 상태를 가지고 있지 않는 StateLess 프로토콜이고, Method,Path,Version,Headers,Body 등으로 구성된다. Http로 비밀번호나 주민번호를 주고 받으면, 3자가 조회할수있기때문에, Https등장https 는 끝에 secure가 붙은 것.Http에 암호화가 추가된 프로토콜이다.https는 http와 다르게 443포트를 사용하고, 네트워크에서 제 3자가 볼수있도록 공개키 암호화를 지원하고있다. 공개키 / 개인키는 서로를 위한 1쌍의 키이다.공개키 : 모두에게 공개..
[JPA] 기초 CRUD 사용 해보자
Spring boot start app에서, JPA관련 CRUD 조회,생성 저장을 해보자 우선 테이블은 Entity를 사용하고, Pk는 컬럼 별로, Id를 달고, 테이블명이나 컬럼명은 다를 경우, 별도 어노테이션을 통해서 매핑 해주면된다. Member와 user에 대한 테이블 생성이 완료되었을 경우 CRUDrepository 라는 별도로 제공해주는 것을 상속받은 customRepo를 만들고, findAll(조회) save를 통해서,저장을 해본다. app이 실행할때, 해당 메소드가 돌기떄문에, 성공적으로 쿼리가 도는 것을 확인할수있다. 근데 여기서 문제, 데이터 베이스에서 find한 값을가져와서, 속성만 set을 해주면 자동 수정 저장이 될까? 이걸 한번 테스트 해보고싶었다. 특정 조건에 맞는 객체를 가져..