반응형
전체 글

전체 글

    애플워치 4 스포츠 스페이스 그레이 gps 모델 가로수길에서 픽업 후기!

    애플워치 4를 여자친구에게 결혼 선물로 받았다. 평소에 시계는 좋아하지만 애플워치는 너무 비싸서 사지 않고 항상 샤오미 미밴드만 사용했었다.샤오미 사용한지 2년정도 되어가는데 여자친구가 결혼 선물로 이번에 출시한 애플워치 4를 사줬다. 애플빠인 나에게는 너무 좋은 선물이었다.이제 애플의 모든 제품을 다가지고 있다. 진정한 애플맨이 되었다. 돈이 많은건 아니다. ㅋㅋ 그만큼 남들처럼 옷이나 여행 취미가 많이 없어서 많이 모였던 것 같다. 우선 처음 애플워치를 구경하고 구매하려고 도움주시는분들에게 말했으나 재고가 없다고 했다.사고 싶어도 살수가 없을 정도로 인기가 많다니 놀랬다. 그래서 인터넷으로 재고가 있으면 바로 출력되니 확인 후 바로 예약해서 오라고 하셔서 어제부터 계속 모니터링 했다.성격이 급해서 사..

    Promise에서 Unhandled Rejection 설명

    Rejection은 프로미스에서 발생하는 에러를 칭한다. Es6에서는 비동기 동작의 상태 표현으로 "pending", "fulfilled", "rejected" 세가지가 정의 되었다. pending은 비동기 작업중인 것을 나타내고 fulfilled는 비동기 동작이 완료된것을 표현한다. 그리고 rejected는 비동기가 실패한 것을 표현해준다. promise에서 작업이 성공할 경우에는 resolve를 실행하고 실패할 경우에는 reject를 수행한다. 그럼 Promise에서 에러가 발생했을 때는 어떻게 처리하는게 좋을 까? 대부분은 에러가 발생했을 때는 promise chaining을 사용해서 .catch(err => { } );로 잡을 수 있다. 그럼 이런 경우에도 정상적으로 잡힐까? 12new Promi..

    node js에서 stream pipe 사용시 에러 처리 방법

    node js에서 데이터를 stream을 사용하여 처리하고 pipe를 사용해서 계속해서 stream을 가지고 작업을 이어나갈 수 있다. 그런데 pipe를 통해서 작업을 진행하다 보니까 중간에 오류가 발생했을 때 try / catch 로는 정상적으로 처리하지 못하는 경우가 발생했다. 나에 경우에는 에러가 발생했을 때 try / catch에서 잡히지 않아서 프로그램이 Unhandled Promise Rejections를 출력 하며 죽어버렸다. 그 예는 다음과 같이 request를 통해서 받은 이미지를 sharp 라이브러리를 통해서 이미지 크기를 변경하려고 할 때 발생했다.1try { await request('https://image.toast.com/aaaaab/ticketlink/TKL_3/ion_mai..

    [공유] mysql/mariadb utf8mb4 언어셋 설명

    mysql 을 사용하다보면 utf8 캐릭터 셋을 자주 사용한다. 그 중에서도 여러 패키지가 존재하는데 잘 알지 못하고 사용하는 것 같다. 주로 사용하는 캐릭터 셋을 정리된 글을 공유해본다. 핵심 부분만 정리했다. 자세한 내용은 아래 출저 페이지에가서 보면 좋은 공부가 될 것 같다. - Mysql에서 주로 보는 Charset과 collection이 있는데 각각 문자집합과 정렬을 뜻한다.- utf8은 1 ~ 4 바이트까지 저장할 수 있도록 설계된 가변 바이트 자료형이다.- Mysql에서는 utf8을 3바이트 가변 자료형으로 저장한다. (chraset: utf8, collation: utf8_general_ci)- emoji와 같은 문자는 4바이트이기 때문에 해당 필드에 저장하면 문제 발생- Mysql 5.5..

    스프링 부트에서 사용하는 JPA 기능 정리

    스프링 프레임워크에서 제공하는 JPA는 별도의 구현 클래스 없이 인터페이스만을 사용할 수 있도록 제공한다. 제공되는 인터페이스 JpaRepository는 실행시점에 자동으로 인터페이스 내용을 연결하는 엔티티에 맞게 자동으로 구현해준다. 만약 스프링 JPA 인터페이스에서 제공하지 않는 기능을 사용하고 싶을 때는 메서드명을 특정한 규칙대로 만들어서 사용하면 인터페이스가 알아서 그 이름에 맞는 JPQL을 만들어서 실행해준다. 스프링 JPA 인터페이스는 Mysql같은 RDBMS 뿐만 아니라 Mongodb, Redis와 같은 NoSQL에도 동일한 인터페이스를 사용해서 기능을 사용할 수 있도록 제공해준다. 공통으로 사용할 수 있기에 아주 편리하다. 우선 스프링 부트에 JPA를 사용하기 위해서 Gradle에 라이브러..

    @MappedSuperclass를 이용한 부모 매핑정보 사용하기

    기존에는 부모의 엔티티에 접근해서 정보를 가져와서 사용했다. 하지만 그러면 너무 비용이 크기 때문에 이를 위해서 부모클래스의 매핑정보만 가지고와서 사용할 수 있는 방법이 있다.@MappedSuperClass 어노테이션을 사용하면 부모 엔티티 접근 없이 부모 클래스의 매핑정보를 사용할 수 있다. 예를들어 선생님과 학생을 담당하는 클래스에서 id와 name은 공통 속성이다. 이런 고유 속성을 부여해주는 부모클래스를 만들고 이를 상속받은 Student와 Teacher 클래스를 만들어보자. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647/** * springboottest * * @author wedul *..

    앱코 K590 청축 키보드 후기

    집에서 사용할 키보드로 청축 저렴한 모델을 찾았다. 그래도 너무 인지도가 없는 브랜드는 구매하기 꺼려졌다. 그래서 어느정도 키보드 쪽에서 네이밍이 있는 앱코에서 구매했다. 구매는 위메프에서 했다. https://front.wemakeprice.com/product/101457229 제품모델명은 앱코 K590이다. 검은색은 하도 많아서 이번에 하얀색으로 구매했다. 소리도 좋고 키보드 느낌도 좋다. 요새는 청축이 워낙 많다보니까 가성비 좋은 브랜드가 많은 것 같다. 그런데 가격이 가격이다보니 사용하다보면 스프링 튕기는 소리가 조금은 난다. 그래도 거슬리는 정도는 아니다. 색은 총 6가지 형태로 조절 할 수 있다. 아무리 조심히 쳐도 청축은 청축인것 같다. ㅋㅋ 소리가 크다. 만족스럽다. 위메프에서 요새 블랙..

    Elasticsearch에서 Full text queries와 Term level queries 정리

    Elasticsearch를 사용하다보면 term과 match 관련된 쿼리에 대해 헷갈리는 경우가 많다. Document에 있는 내용을 가져와서 정리해보자. Full text queriesThe high-level full text queries are usually used for running full text queries on full text fields like the body of an email. They understand how the field being queried is analyzed and will apply each field’sanalyzer (or search_analyzer) to the query string before executing. match queryThe s..

    Elasticsearch query string 조회시 parse exception 에러 처리

    elasticsearch에서 query_string로 데이터 조회시에 쿼리문으로 ) 특수문자가 포함하여 조회했다. 하지만 다음과 같이 문제가 발생했다. 1234567891011{ "error": { "root_cause": [ { "type": "parse_exception", "reason": "parse_exception: Encountered \" \")\" \") \"\" at line 1, column 11.\nWas expecting one of:\n \n ...\n ...\n ...\n \"+\" ...\n \"-\" ...\n ...\n \"(\" ...\n \"*\" ...\n \"^\" ...\n ...\n ...\n ...\n ...\n ...\n ...\n \"[\" ...\n \"..

    JPA 상속관계 매핑 전략

    객체 지향으로 데이터베이스 중심 매핑을 변경하기 위해서 가장 애매한게 상속이다. 이런 상속관계속에서 테이블로 구현할 때 3가지 방법을 선택할 수 있다. 1) 각각의 테이블로 변환 : 각각을 모두 테이블로 만들고 조회할 때 조인을 사용. 2) 통합 테이블로 변환 : 테이블을 하나만 사용해서 통합 3) 서브타입 테이블로 변환 : 서브 타입마다 하나의 테이블을 만드는 방식. 순서대로 하나씩 정리해보자. ㅁ 각각의 테이블로 변환 (조인전략) - 부모와 각각의 자식 엔티티를 모두 각자의 테이블로 만들고 부모의 기본키와 자식의 외래키를 사용하여 조인하여 사용한다. - 자식 엔티티의 타입을 구별하기 위한 DTYPE 컬럼을 구분컬럼으로 추가하여 사용한다. (없어도 무관) 1234567891011121314@Entity..

반응형