티스토리

datajoy
검색하기

블로그 홈

datajoy

datajoy.tistory.com/m

datajoy 님의 블로그입니다.

구독자
1
방명록 방문하기

주요 글 목록

  • 도메인주도 설계 https://ppiyo5.tistory.com/21 공감수 0 댓글수 0 2021. 12. 31.
  • Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request CORS 시 아래와 같이 에러가 발생하는 경우 https://datajoy.tistory.com/233?category=876683 를 참고해주세요 공감수 0 댓글수 0 2021. 12. 29.
  • https 호출이 있던 도메인은 http호출을 해도 https로 redirect chrome에서 https 호출이 있던 도메인은 http 호출을 해도 https로 redirect합니다. http로 변경하려면 아래 링크에서 http로 변경한 도메인을 삭제해주어야합니다. chrome://net-internals/#hsts 공감수 0 댓글수 0 2021. 12. 29.
  • REST API 페이징 방식 Offset-Based Pagination (오프셋 기반 페이지네이션) 대중적으로 많이사용되는 페이징 방법. 유저가 페이지를 선택하고 이동 할 수 있는 장점이 있음. 전체 페이지 개수를 알 수 있음. Request Parameter parameter value description page 1 조회하려는 페이지 번호를 전달 size 10 조회하려는 페이지에서 데이터의 개수 sort +empNm,-orgNm +는 ASC, -는 DESC 여러가 정렬 시 ","로 구분합니다. Response data { "content" : [ //Response Json Data ], "page" : { "totalDataCnt" : 99, "totalPages" : 10, "isLastPage" : false, "isFi.. 공감수 1 댓글수 0 2021. 12. 22.
  • RESTful API 설계하기 RESTful API 수준 2008년에 Leonard Richardson은 Web API에 대한 다음과 같은 성숙도 모델을 제안했습니다. 수준 0: 한 URI를 정의합니다. 모든 작업은 이 URI에 대한 POST 요청입니다. 수준 1: 개별 리소스에 대한 별도의 URI를 만듭니다. 수준 2: HTTP 메서드를 사용하여 리소스에 대한 작업을 정의합니다. 수준 3: 하이퍼미디어(HATEOAS, 아래에 설명)를 사용합니다. 수준 3은 Fielding의 정의에 따르면 진정한 RESTful API에 해당합니다. REST API REST API는 URI만 보고도 직관적으로 이해할 수 있어야합니다. URI 규칙 / {①단수:서비스명} / {②버젼} / {③복수:리소스명} / {④아이디} / {⑤복수:리소스명} / {.. 공감수 2 댓글수 0 2021. 12. 22.
  • Mybatis에서 JPA로 Mybatis 로 시작하다 입사를 해보니 모든 시스템의 로직이 DB의 프로시저로 개발되어있는 조직이였다. 처음에는 시스템 사용률이 높지않아서 DB 1대로 커버가 가능하였지만 점점 서비스가 확장되면서 유지보수가 어려워지고 DB의 부하가 커져만 갔다. 그러던 어느날 새로운 서비스를 오픈하면서 문제는 발생하였다. 여태 서비스하였던 것과는 비교적 트래픽이 높은 서비스였고 이정도의 트래픽을 감당할 수 있는 노하우가 없던 조직이라 오픈하자 말자 서버가 터졌다… 특히, 데이터가 중요한 조직이라 서버가 터진것은 매우 큰 이슈였고 복구를 하기위해 여러 시도를 하였지만… 일주일간 서버가 정상작동이 어려웠다. 어떻게 해서 간신히 응급조치는 하였고 원인은 DB에 모든 로직들로 인해 부하가 매우 높다는것으로 진단하고 우리는 작.. 공감수 7 댓글수 3 2021. 12. 11.
  • Log4j 2.0 ~ 2.14.1 version 취약점 취약점 설명 Java 로깅 라이브러리(log4j)를 이용한 원격 명령 실행(CVE-2021-44228) 로그메시지 및 파라미터에 사용되는 JNDI기능의 메시지 조회 대체 기능이 활성화되어 있을 경우 임의의 코드 실행 가능 대 상 Apache Log4j 2.0 ~ 2.14.1 사이에서 발생 대응 방안 1) log4j 2.15.0 버전으로 변경 2) "log4j2.formatMsgNoLookups"를 "true"로 설정 공감수 0 댓글수 0 2021. 12. 11.
  • Local Cache와 Global Cache Local Cache 빠르지만 서버가 여러 대 경우 동기화 이슈 존재. -> EhCache+Terracotta.. 등 clustering을 통해서 해결 가능 Global Cache Local Cache 보다는 느리고 Database 보다는 빠름. 서비스하는 서버에 종속되어 Caching 하지 않기 때문에 분산처리 캐시에 용이 공감수 0 댓글수 0 2021. 11. 20.
  • Cache 전략 Cache Aside 전략 가장 일반적으로 사용되는 캐시 전략. 주로 변경이 적고 읽기 작업량이 많은 애플리케이션에 활용. TTL에 따라서 Cache가 갱신되기 때문에 데이터 일관성 유지가 안됨. Write-Through 전략 쓰기 시, Cache와 DB에 동시에 쓰기 때문에 데이터 일관성 보장. 데이터 일관성이 보장되어 주로 실시간으로 데이터가 관리가 필요할 때 사용 쓰기 시, Cache와 DB 모두 쓰기 때문에 비교적 쓰기 지연 있음. Write-Back 전략Was에서 Cache로 쓰기 하고 일정 시간에 따라 DB로 쓰기 진행. 쓰기의 처리 속도를 향상 시킬 때 사용. 일정 시간에 따라 DB에 쓰기 때문에 데이터 일관성 이슈 존재. Read-Through 전략 기본적으로 cache 데이터를 가져오며 .. 공감수 0 댓글수 0 2021. 11. 20.
  • Elastic Search 시작하기 검색엔진이 왜 필요한가? RDBMS의 where 절로 검색이 가능한데 왜 ElasticSearch와 같은 검색엔진이 필요한가하면, RDBMS는 단순 텍스트 매칭 검색기능만 제공. 텍스트를 여러 단어로 변경하거나 텍스트의 특징을 이용한 동의어 유의어 활요한 검색가능. (= 고급검색가능) 비정형 데이터의 색인과 검색 가능.(매우 중요한 부분. 사용이유.) 자연어 처리 가능. 역색인 지원으로 매우 빠른 검색 가능. 특징 실시간 처리 불가능. 트랜잭션, 롤백기능 제공안됨. 데이터 관리가 불안정. 업데이트 기능이 없음. 업데이트 기능이 있긴하나 삭제하고 다시등록하는 과정. 내부적으로 역색인이 됨 전문검색이 가능. 데이터 구조 text 단어를 기준으로 document를 저장하는 방식 text document 안녕하.. 공감수 0 댓글수 0 2021. 11. 10.
  • Java 금칙어 정규식 필터 import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; public class BlackWordsUtil { public static boolean isBlackWords(List blackWords, String word) { Set filteredBlackWords = getFiteredBlackWords(blackWords, word); return (filteredBlackWords.size() > 0) ? true : false; } public static Set getFiteredBlackWords(List .. 공감수 0 댓글수 0 2021. 8. 22.
  • React vs Angular vs Vue 비교하기 # React vs Angular vs Vue 비교 React Angular Vue 구조 라이브러리 프레임워크 프레임워크 커뮤니티 활성화 1 2 3 러닝커브 중간 높음 낮음 생산 페이스북 구글 개인(Evan You 프로젝트 리더) Release 2013 2010 2014 DOM Virtual DOM Real DOM Virtual DOM 데이터바인딩 단방향 단방향, 양방향 단방향, 양방향 html 스크립팅 방식 JSX Template Template 사용자 Facebook, Netflix, Uber, Heroku, Paypal, Atlassian, Airbnb, Microsoft Google, Youtube, Aws, Telegram, Paypal, Upwork, Nike Nasa, Adobe, Ninte.. 공감수 0 댓글수 0 2021. 6. 23.
  • 리플렉션이란 리플렉션은 구체적인 클래스 타입을 알지 못해도, 그 클래스의 메소드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API 리플랙션 API로 동적인 코드를 관리할수있어 유연하게 작업이 가능해진다. 공감수 0 댓글수 0 2020. 9. 3.
  • CentOS 7 설치하기 아래 링크로 접속 https://www.centos.org/download/ iso 파일 설치 참고자료 blog.naver.com/anysecure3/221571814401 공감수 0 댓글수 0 2020. 9. 2.
  • 스프링 Webflux 복수개의 서비스로 이루어진 분산 시스템이 정상 상황 뿐만 아니라 장애상황에서도 일관된동작을 보장해주는 시스템이며 Microservice가 지향하는 방향이다. 서비스간 호출이 많은 마이크로 서비스 아키텍처에 적합. 효율적으로 동작하는 고성능 웹 어플리케이션 개발. 비동기 - 논블록킹 리엑티브 개발에 사용. 공감수 0 댓글수 0 2020. 8. 26.
  • 스프링 기술 https://12bme.tistory.com/158 공감수 0 댓글수 0 2020. 8. 26.
  • 스프링 PSA PSA란? 스프링의 기술중 하나이며, 환경의 변화와 관계없이 일관된 방식의 기술로의 접근 환경을 제공하려는 추상화 구조를 말한다. 예를들어, tomcat -> netty로 변경, JDBC -> Hibernate로 기술이 변경되더라도 우리가 작성한 코드는 변경되지 않음을 뜻한다. 공감수 0 댓글수 0 2020. 8. 26.
  • lombok @EqualsAndHashCode 자바 빈을 만들 때 equals와 hashCode 메소드를 자주 오버라이딩 하므로 자동으로 equals와 hashCode를 생성해주는 어노테이션 callSuper = true로 설정하면 부모 클래스 필드 값들도 동일한지 체크하며, callSuper = false로 설정(기본값)하면 자신 클래스의 필드 값들만 체크함. @Data @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode을 한꺼번에 설정해주는 어노테이션. 공감수 0 댓글수 0 2020. 8. 25.
  • with 구문 https://epdl-studio.tistory.com/35 공감수 0 댓글수 0 2020. 8. 22.
  • 자바 List 중복제거 1. ArrayList 포함된것 확인하여 담기 resultList = new ArrayList(); for (int i = 0; i 2 공감수 0 댓글수 0 2020. 8. 20.
  • Mybatis foreach invalid comparison: java.util.ArrayList and java.lang.String 위의 에러 발생의 경우이다. #{item.value} list 의 경우는 != '' 와 비교가 안되서 발생하는 에러이다. #{item.value} 다음과 변경할 경우에 에러가 사라진다. 공감수 0 댓글수 0 2020. 8. 14.
  • 자바 배열을 List처럼 사용하기(Arrays.asList()) http://blog.naver.com/PostView.nhn?blogId=evella&logNo=90195439020&redirect=Dlog&widgetTypeCall=true 공감수 0 댓글수 0 2020. 8. 14.
  • 자바 stream Grouping Map ablJaDataQstnListGroupByJobWorkCd = this.ablJaDataQstnList.stream().collect(Collectors.groupingBy(AblJaDataQstn::getJobWorkCd)); 공감수 0 댓글수 0 2020. 8. 13.
  • 자주 사용되는 Stream this.empList = this.empList .stream() .filter(a -> Emp.CONFIRM.equals(a.getStatCd())) .collect(Collectors.toList()); his.empList = this.empList .stream() .sorted((a,b) -> a.getOrderNum().compareTo(b.getOrderNum())) .collect(Collectors.toList()); boolean isExistData = empList .stream() .anyMatch(a -> a.getEmpId().startsWith(params.getEmpId())); 공감수 0 댓글수 1 2020. 8. 7.
  • syncronized 란? https://coding-start.tistory.com/68 공감수 0 댓글수 0 2020. 8. 6.
  • 싱글톤 - 더블 체크드 락킹(Double Checking Locking) 공감수 0 댓글수 0 2020. 8. 6.
  • 즉시로딩과 지연로딩 엔티티를 조회할 때 연관관계를 맺고 있는 다른 엔티티도 같이 조회한다. 하지만 불필요한 데이터까지 조회하기 때문에 지연로딩 이라는 것을 지원하고 이 때 실제 객체 대신 임의의 객체가 필요한다 이 때 프록시객체를 사용한다. 프록시(대리인 )를 사용하면 연관된 객체를 처음부터 데이터베이스에서 조회하는 것이 아니라, 실제 사용하는 시점에 데이터베이스에서 조회 할 수 있다. 공감수 0 댓글수 0 2020. 8. 3.
  • 이클립스 svn 설치 https://recipes4dev.tistory.com/155 공감수 0 댓글수 0 2020. 8. 2.
  • Eclipse 이전버전 사용 시 marketplace 안될때 Oxygen - http://download.eclipse.org/releases/oxygen/ Neon - http://download.eclipse.org/releases/neon/ Mars - http://download.eclipse.org/releases/mars/ Luna - http://download.eclipse.org/mpc/luna Helios - http://download.eclipse.org/releases/helios Juno - http://download.eclipse.org/releases/juno/ Juno Software Repository This software repository URL, http://download.eclipse.org/releases/juno/.. 공감수 1 댓글수 0 2020. 7. 31.
  • 스프링 filter와 interceptor의 차이 https://supawer0728.github.io/2018/04/04/spring-filter-interceptor/(Spring)Filter와 Interceptor의 차이서론Spring을 익힌지 얼마 되지 않았을 때, 회원 인증 로직을 구현할 일이 생겼었다. 그 인증을 구현하기 위해 Filter와 Interceptor를 조사했었다. 하지만 Filter와 Interceptor를 어떤 경우에 써야 좋은지 �supawer0728.github.io Filter와 Interceptor의 차이 1. 호출 시점 Filter는 DispatcherServlet이 실행되기 전 , Interceptor는 DispatcherServlet이 실행된 후 2. 설정 위치 Filter는 web.xml , Interceptor는.. 공감수 0 댓글수 0 2020. 7. 24.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.