s3 서버에 파일 업로드를 구현하기 위해 spring-cloud-starter-aws 의존성 주입을 하게되면 톰캣 서버 실행 시 에러가 뜬다. com.amazonaws.SdkClientException: Failed to connect to service endpoint: // ... stack trace ... // ... 이런 에러가 뜨면서 connection timeout이 되어버리는데 구글링 결과 EC2 환경이 아닌 곳에서 일어나게되는 에러였다. 치명적인 에러가 아니라고는 하지만 서버 실행할 때 딜레이가 생기고 찝찝한 에러 메세지는 지우고 싶어지는게 사람 욕심인 것이다. (나만 그런가...) 해결 방법으로는 amazon EC2가 아닌 환경의 시스템 환경변수를 만들어 주는 것이다. 변수 이름 : A..
개인 프로젝트를 진행하면서 게시판을 만들던 중 N+1 문제가 발생했었다. JPA 페이징 API를 사용해서 게시글을 20개씩 가져오도록 구현했었는데 게시글과 댓글의 개수도 같이 보여지게 하기 위해서 Page에 담긴 Posts들을 Dto로 매핑하는 과정에서 N+1 문제가 발생했었다. comments 필드에 생성자로 값을 초기화 해주는데 페치 조인으로 Posts와 연관된 Comment들을 불러오지 않았기 때문에 select 쿼리문이 하나씩 추가적으로 발생했던 것이다. 처음 Querydsl과 페치 조인을 사용해서 문제를 해결하려고 했지만 페치 조인을 사용하면 페이징 API를 사용할 수 없다. 정확히는 사용할 수 없진 않은데 메모리에 매우 치명적이다. 페치 조인을 하게되면 DB에 있는 모든 Posts를 불러온 후..
고객아이디 고객이름 나이 등급 직업 적립금 apple 김현준 20 gold 학생 1000 banana 정소화 25 vip 간호사 2500 carrot 원유선 28 gold 교사 4500 orange 정지영 22 silver 학생 0 1. 슈퍼키 슈퍼키는 유일성을 만족하는 속성 또는 속성들의 집합이다. 유일성은 만족하지만 최소성은 만족하지 못한다. (고객아이디, 고객이름)으로 구성된 속성집합과 같이 고객아이디가 포함된 모든 속성 집합은 모두 슈퍼키가 될 수 있다. 2. 후보키 유일성과 최소성을 모두 만족하는 속성 또는 속성들의 집합이다. 슈퍼키 중에서 최소성을 만족하는 것이 후보키가 된다. 3. 기본키 여러 후보키 중에서 하나가 기본키가 된다. 후보키 중에서 기본키를 선택하는 기준 1. NULL 값을 가질..
자바스크립트 정규 표현식 test() 메소드를 반복적으로 수행 할 경우 값이 계속 바뀌던 문제가 있었다. 문제의 원인은 정규 표현식의 전역 플래그(g) 때문이였다. 정규 표현식에 전역 플래그를 설정한 경우, test() 메소드는 정규 표현식의 lastIndex를 업데이트하게 된다. test() 메소드와 exec() 메소드는 내부적으로 lastIndex부터 문자열을 검사하게 되는데, test() 메소드는 true를 반환했던 lastIndex부터 계속해서 검사하게 된다. 그리고 lastIndex는 false를 반환하기 전 까지 초기화가 안되는 특징이 있다. 따라서 같은 문자열을 계속해서 test() 메소드로 검사하게 되면 true와 false를 반복해서 리턴하게 된다. 다른 대안으로는 search() 메소드..
포트폴리오로 OP.GG 클론 사이트를 제작하면서 회원가입 폼 유효성 검사 기능을 개발하면서 작은 문제에 부딪혔다. $('#floatingInput').on('keyup' ,function(event) { if (!/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/g.test($('#floatingInput').val())) { $('#invalid-email').html(" 유효한 이메일 주소를 입력해 주시기 바랍니다."); } else { $('#invalid-email').empty(); } }); 처음에 이런식으로 코드를 작성 했을 때 제대로 작동이 될 줄 알았는데... 구글 크롬 개발자 모드에서는 div태그 안에 내가 입력한 값이 잘 들어온다 하지만 정작 보여지지가 않는 문제가 있었다...
언제부터인지 정확히 모르겠지만 터미널에 Homebrew관련 명령어 실행 시 Ignoring으로 시작하는 에러 메시지가 함께 나오기 시작했다... $ brew doctor Ignoring eventmachine-1.2.7 because its extensions are not built. Try: gem pristine eventmachine —version 1.2.7 Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi —version 1.13.1 Ignoring http_parser.rb-0.6.0 because its extensions are not built. Try: gem pristine http_pars..
1. Shorthand property names const ellie1 = { name: 'Ellie', age: '18', }; const name = 'Ellie'; const age = '18'; // key와 value의 이름이 같을 경우 object를 다음과 같이 초기화 할 수 있다. const ellie2 = { name, // name: name age, // age: age }; 2. Destructuring assignment // object const student = { name: 'Anna', level: 1, }; { // const name = student.name; // const level = student.level; const { name, level } = stud..
- Total
- Today
- Yesterday
- Thymeleaf
- java
- homebrew
- EC2
- Stream
- Docker
- 타임리프
- 유효성 검사
- Jackson
- Spring
- optional
- 인텔리제이
- rbenv
- 스트림
- framework
- gem
- IDE
- 이클립스
- git
- IntelliJ
- 도커
- 데이터베이스
- S3
- Set
- bootstrap
- JSON
- Github
- 충돌에러
- Gson
- interface
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |