본문 바로가기

전체 글75

[Spring] IntelliJ 에서 queryDSL 의 Q 도메인을 찾지 못할때 https://blusky10.tistory.com/275IntelliJ 에서 queryDSL 의 Q 도메인을 찾지 못할때 2020. 8. 23.
[IntelliJ] Plugins MarketPlace 검색 안되는 경우 https://intellij-support.jetbrains.com/hc/en-us/community/posts/360004275380-Marketplace-Plugins-are-not-loaded 2020. 7. 26.
[SpringBoot] Spring Boot Scheduler(Cron) 사용방법 이번 글에서는 Spring Boot에서 설정한 시간마다 특정 동작을 하는 Scheduler 사용법에 대해 알아보도록하자 우선 매시간마다 특정 동작을 한다고하였는데, 동작을 실시하는 시간을 설정하는 문자열 방식을 살펴보자. 실행주기를 설정하는 문자열은 6개의 숫자, 문자, * 등으로 이루어져있다 1 2 3 4 5 6 // 순서 * * * * * * // 실행주기 문자열 // 순서별 정리 1. 초(0-59) 2. 분(0-59) 3. 시간(0-23) 4. 일(1-31) 5. 월(1-12) 6. 요일(0-7) 위와 같이 각 순서에 맞는 시간 설정 값이 있고, 예를 들어 살펴보도록하자. "0 0 * * * *" = the top of every hour of every day. "*/10 * * * * *" = .. 2020. 7. 25.
[Kafka] Apache Kafka란? Apache Kafka(아파치 카프카)는 LinkedIn에서 개발된 분산 메시징 시스템으로써 2011년에 오픈소스로 공개되었다. 대용량의 실시간 로그처리에 특화된 아키텍처 설계를 통하여 기존 메시징 시스템보다 우수한 TPS를 보여주고 있다. Kafka란? 분산 스트리밍 플랫폼 데이터 파이프 라인 구성시, 주로 사용되는 오픈소스 솔루션 대용량의 실시간 로그처리에 특화되어 있는 솔루션 데이터를 유실없이 안전하게 전달하는 것이 주목적인 메세지 시스템 클러스터링이 가능하므로, Fault-Tolerant한 안정적인 아키텍처와 빠른 퍼포먼스로 데이터를 처리 수평적으로 서버의 Scale-Out이 가능함 pub-sub모델의 메세지 큐 * Fault-Tolerant : 시스템내, Fault (장애)가 발생하더라도 시스템.. 2020. 5. 26.
[Spring] ResourceLoader 이번 글에서는 ApplicationContext의 마지막 기능인 ResourceLoader에 대해서 알아보도록하자. ResourceLoader라는 것은 이름 그대로 Resource 를 로딩해주는 인터페이스이다. 이 인터페이스를 ApplicationContext가 상속 받고 있기 때문에 ApplicationContext 객체를 통해 Resource 로딩기능도 사용할 수 있다. 아래의 코드를 보도록하자. AppRunner.java @Component public class AppRunner implements ApplicationRunner { @Autowired ResourceLoader resourceLoader; public void run(ApplicationArguments args) throws .. 2020. 5. 17.
[Spring] ApplicationEventPublisher 이번 글에서는 옵저버 패턴의 구현체로 이벤트 기반의 프로그래밍을 할때 유용한인터페이스인 ApplicationEventPublisher에 대해 알아보도록 하자. 여기서 말하는 옵저버 패턴을 간략하게 실생활에 빗대어 표현하면, 스마트폰에 날씨 어플리케이션이 저장되어 있다고 가정하자. 이 어플리케이션은 기상청의 데이터를 수시로 읽어서 스마트폰을 사용하는 사용자에게 푸쉬알람, 진동등을 통해서 어떠한 상황변화를 전달할 수 있다. 프로그래밍에서 이 상황을 설명한다면, 상태를 가진 객체가 기상(날씨)가 되는것이고 기상(날씨)를 관찰하는 기상청의 컴퓨터 또는 기상청의 직원을 말할 수 있다. 여기서 Observer(보는사람, 목격자)가 기상청의 컴퓨터 또는 직원을 말한다. 어떠한 상태를 가지는 객체 A와 A의 상태를 관.. 2020. 5. 15.
[Naming Convention] 네이밍 컨벤션 케이스별 정리 Lower Camel Case 단봉 낙타 표기법 일반적으로 Camel Case로 불림 단어의 연결이 있을때, 두번째 단어부터 첫 글자는 대문자로 표시 ex) studentName / productPrice Lower Case Strategy 단어의 연결을 신경쓰지 않고, 모든 알파벳을 소문자로 표시 ex) studentname / productprice Upper Camel Case 쌍봉 낙타 표기법 단어의 연결이 있을때, 첫번째 단어부터 첫 글자는 대문자로 표시 ex) StudentName / ProductPrice Snake Case Strategy 단어의 연결이 있을때, 각 단어의 사이에 언더바를 기입하여 표시 ex) student_name / product_price KebabCaseStrateg.. 2020. 3. 2.
[DataBase] SELECT 쿼리 실행 순서 SELECT 쿼리 작성 순서 1. SELECT 2. FROM 3. WHERE 4. GROUP BY 5. HAVING 6. ORDER BY SELECT 쿼리 실행 순서 1. FROM 2. ON 3. JOIN 4. WHERE 5. GROUP BY 6. HAVING 7. SELECT 8. DISTINCT 9. ORDER BY 10. TOP 2020. 2. 16.
[HTTP] HTTP/1.1(HyperText Transfer Protocol)의 구조 HTTP(HyperText Transfer Protocol)란? 하이퍼텍스트(hypertext)는 인터넷에서 사용되는 웹문서 형식(HTML)을 생각하면 이해가 빠르다. 우리가 인터넷에서 사용하는 웹사이트는 종이책 같은 텍스트(text)와 달리 마우스를 누르면 원하는 부분을 이곳저곳 열어갈 수 있다. 사용자는 작가가 정해놓은 한 가지 순서로 글을 읽는 것이 아니라 자기가 원하는 부분만을 선택하여 독서할 수 있다. (문학비평용어사전, 2006. 1. 30., 한국문학평론가협회) HTTP는 바로 위에서 설명된 hypertext를 전송하는 프로토콜이라고 생각하면된다. 우리가 웹(Web) 브라우저를 키고 링크를 클릭하여 다른 사이트로 접속하는 행위들이 모두 http를 통해서 이루어지는 것이다. 1. HTTP의 구.. 2020. 2. 4.
[Git] git 명령어 정리 https://medium.com/@joongwon/git-git-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC-c25b421ecdbd [Git] Git 명령어 정리 한동안 포스팅 주제도 못 잡았고 회사일이 너무 바빠서 블로그 엄두도 못 내다가 추석 연휴 때 고향에 내려가서 휴식을 취하며 독서도 하고 포스팅도 하려고 했지만.. 그것도 여의치 않았다. 대신 어떤 주제에 대해서 포스팅할지 고민은 하였는데 그중에… medium.com 2020. 1. 30.
[eXERD] Eclipse에서 eXERD 사용하기 이번 글에서는 Ecliapse에서 EXERD를 사용할 수 있도록 설정하는 방법에 대해 알아보도록 하자. 아래의 순서대로 진행하면, exclipse에서 exerd를 사용할 수 있다. Eclipse에서 eXERD 사용하기 끝. 2020. 1. 19.
[Spring] MessageSource 이번 글에서는 ApplicationContext에서 다국화(i18n)을 담당하는 MessageSource 인터페이스에 대해 배워보자. 다국화(i18n) 란, 설정 값에 따라 각국의 언어로 변화시켜서 제공하는 것을 말한다. 제공하는 서비스가 우리나라뿐 아니라 세계적으로 사용되는 경우가 있다. 대표적으로 "Line" 이라는 어플리케이션이 있는데, 세계 각국의 사람들이 이용하는 대표적인 서비스인 만큼 각 나라의 언어에 맞게 노출되는 문구가 달라야 하는게 당연하다. 만약 각국의 언어로 제공하기 위해 각나라마다 새로운 프로젝트를 생성하거나 복잡한 코드로 제공한다면, 상당히 비효율적인 방식이다. 이때, 필요한 것이 바로 다국화(i18n) 이다. ApplicationContext의 MessageSource를 이용하면.. 2020. 1. 18.