본문 바로가기

전체 글108

[기본] EDI, EAI, B2Bi, SOA, ESB 란? EDI(전자 문서 교환) EDI(전자 문서 교환) ● EDI(전자 문서 교환) 전자 문서 교환(Electronic Data Interchange, EDI)은 독립된 조직 간에 정형화된 문서를 표준화된 자료표현 양식에 준하여 전자적 통신매체를 이용해 교환하는 방식이다. 예를들어, 기업간 거래에 관한 데이터와 문서를 표준화하여 컴퓨터 통신망으로 거래 당사자간 전송·수신하는 정보전달 시스템이되며, 주문서·납품서·청구서 등 무역에 필요한 각종 서류를 표준화된 양자간 서식 또는 공공서식을 통해 서로 합의된 전자신호로 바꾸어 컴퓨터 통신망을 이용하여 거래처에 전송한다. ■ EDI(전자 문서 교환)의 이점 국내 기업간 거래는 물론 국제무역에서 각종 서류의 작성과 발송, 서류정리절차 등의 번거로운 사무처리가 없어져 처.. 2021. 2. 2.
EHCache를 이용한 캐시 구현 2 캐시의 경우 모든 상황에서 쓸 수 있는 것은 아니다. 아래의 조건을 만족한다면 캐시 사용을 한번 고려해보는 것이 좋다. 반복적으로 동일한 결과를 돌려주는 작업 각 작업의 시간이 오래 걸리거나 서버에 부담을 주는 경우 (외부 API/DB 데이터호출 등) 이제 예제코드로 본론을 시작하겠다. 예제 예제 코드는 SpringBoot + Gradle + Ehcache 2.x + Logback 환경이다. 모든 코드는 Github에서 관리중이니 필요하다면 확인하면 될것 같다. 캐시 기능에 집중하기 위해서 불필요한 설정은 제외하기 위해 선택하였다. 그럼 하나하나 코드를 작성해나가겠다. build.gradle buildscript { ext { springBootVersion = '1.4.1.RELEASE' } repos.. 2021. 2. 2.
EhCache를 이용한 캐시 구현 1 EHCache의 주요 특징 및 기본 사용법 게시판이나 블로그 등 웹 기반의 어플리케이션은 최근에 사용된 데이터가 또 다시 사용되는 경향을 갖고 있다. 80:20 법칙에 따라 20%의 데이터가 전체 조회 건수의 80%를 차지할 경우 캐시를 사용함으로써 성능을 대폭적으로 향상시킬 수 있을 것이다. 본 글에서는 캐시 엔진 중의 하나인 EHCache의 사용방법을 살펴보고, Gaia 시스템에서 EHCache를 어떻게 사용했는 지 살펴보도록 하겠다. EHCache의 주요 특징 EHCache의 주요 특징은 다음과 같다. 경량의 빠른 캐시 엔진 확장(scable) - 메모리 & 디스크 저장 지원, 멀티 CPU의 동시 접근에 튜닝 분산 지원 - 동기/비동기 복사, 피어(peer) 자동 발견 높은 품질 - Hibernat.. 2021. 2. 2.
Spring 과 Spring Boot Spring 과 Spring Boot 웹 애플리케이션 서버를 만들 때 스프링을 이용하는게 가장 일반적일만큼 대한민국 개발자의 스프링 의존도는 상당하다. 요즘에는 Node.js 나 Django 로도 많이 개발을 하지만 가장 익숙한건 아무래도 스프링인 듯 하다. 이번 포스트에서는 스프링이 정확히 어떤 것인지 그리고 스프링 부트와 어떤 차이가 있는지 알아보고자 한다. Spring? 스프링, 정확하게는 스프링 프레임워크이다. 먼저 스프링에 대해 이해하기 위해서는 프레임워크가 무엇인지, 라이브러리와의 차이가 어떤건지 알고 가는게 가장 중요하다. 라이브러리는 간단하게 특정 기능을 하는 코드 뭉치이다. 개발자는 자기 코드에 라이브러리를 포함시키고 원하는 기능을 사용해서 개발을 할 수 있다. 더욱 간단하게는 원하는 기.. 2021. 1. 12.
JVM 아키텍쳐 JVM(Java Virtual Machine) "자바 가상 머신"이라고 불리는 JVM은 자바 프로그램을 실행하고, 다른 언어로 작성된 것도 자바 byte code로 컴파일하여 실행할 수 있기 위하여 만들어졌습니다. 자바의 작동 방식 자바는 기본적으로 "Write once, Run anywhere"의 정신으로 만들어졌습니다. 말 그대로 한 번 작성한 내용은, 어디서든지 읽고 실행될 수 있어야 한다는 말인데요. 흥미롭습니다. C++ 같은 경우에는 특정한 운영체제, 하드웨어에서 실행되기 위해서 컴파일되지만, 자바는 byte code로 컴파일됩니다. 이는 흔히 우리가 보는 .class 파일입니다. 이때 JDK에 포함되어 있는 자바 컴파일러(javac)를 사용하여 컴파일하게 됩니다. 이 Bytecode를 JVM은.. 2021. 1. 4.
DB2 SYSIBM을 이용하여 Schema 및 Table 정보 확인하기 이번 시간에는 DB2에 있는 SYSIBM을 이용하여 Schema 내 Table 정보, Table Column정보 및 PK와 Index 정보를 확인 해볼텐데요. 1.Schema 내 table 정보 확인 쿼리 -- 스키마 내 테이블 정보 확인 SELECT * FROM SYSIBM.TABLES WHERE TABLE_SCHEMA = 'DB스키마명'; 2.Table 내 Column 정보 확인 쿼리 -- 테이블 내 컬럼 정보 확인 SELECT * FROM SYSIBM.COLUMNS_S WHERE TABLE_NAME = '테이블명'; 3.Table 내 Pk 및 Index 정보 확인 쿼리 -- 테이블 내 INDEX 및 PK 정보 확인 SELECT * FROM SYSIBM.SYSINDEXES WHERE TBNAME = .. 2020. 12. 2.
[자바스크립트] 시간 유효성 검증 시분초 자바스크립트로 시분초 데이터 검증하는 소스를 만들어볼텐데요 시분초 검증하는 소스는 아래와 같습니다. // 시분초 검증 (24시 00:00:00 양식 기준) $.validTime = function(time) { var times = time.replaceAll(":", ""); var chkHh = times.substr(0, 2); // 시 var chkMm = times.substr(2, 2); // 분 var chkSs = times.substr(4, 2); // 초 // length 체크 if (times.length != 6) { return false; } // 시 체크 if (chkHh > 24) { return false; } // 분 체크 if (chkMm > 59) { return fa.. 2020. 11. 25.
더 빠른 SQL 쿼리를 위한 21가지 데이터베이스 튜닝 규칙 누구나 더 빠른 데이터베이스 쿼리를 원하며, SQL 개발자와 DBA 모두 이런 목표를 달성하기 위해 오랜 사용으로 효과가 입증된 여러 가지 방법에 의지한다. 하지만 안타깝게도 그 어떤 방법이라도 하나만으로는 완벽하거나 확실하지 않다. 이처럼 모든 쿼리를 미세조정, 즉 튜닝하기 위한 정답이 존재하지는 않지만, 길을 밝히는데 도움이 되는 풍부한 관례가 있다. 몇 가지는 RDMBS에 관련된 사항들이지만, 대부분의 팁은 모든 관계형 데이터베이스에 적용된다. SQL 서버, 오라클, DB2, 사이베이스, MySQL, 아니면 다른 관계형 데이터베이스 플랫폼 중 어디에서 코딩을 하고 있더라도, 목표는 같다. 데이터베이스가 가능한 빨리 쿼리를 처리하는 동시에 현실적으로 가능한 많은 동시 사용자를 지원하는 것이다. 이는 .. 2020. 8. 10.
Spring security 로그인(DB에 있는 아이디 조회) 1. 먼저 필요한 Maven을 설치합니다. 아래의 메이븐저장소에 들어가서 spring-security-core, spring-security-web, spring-security-config, pring-security-taglibs 검색하여 pom.xml에 추가합니다. https://mvnrepository.com/ Maven Repository: Search/Browse/Explore Reactivewizard Binding Last Release on Oct 31, 2019 mvnrepository.com org.springframework.security spring-security-core 4.2.4.RELEASE org.springframework.security spring-security-.. 2020. 7. 20.
JQUERY 간단 정리 jquery_tut1.html - 기본 셀렉터 $("*") : 모두 $("div p") : 모든 에 포함된 모든 $("#loginID") : id="loginID" $(".Columns") : class="Columns" $("p > a") : 에 포함된 한 단계 아래 레벨의 모든 $("div + p") : 와 같은 레벨인 다음 $("div ~ p") : 와 같은 레벨인 모든 // 개체 숨김 $(selector).hide(); jquery_tut2.html - 필터 $("a[title]") : title 속성이 있는 $("a[href^=mailto:]") : href 속성이 mailto로 시작하는 모든 (^는 문장의 처음을 나타내는 정규표현식) $("a[href$=.pdf]") : href 속성이 pdf.. 2020. 4. 22.
REST API의 탄생/구성/특징 등 REST API의 탄생 - REST는 Representational State Transfer라는 용어의 약자로써 2000년도에 로이 필딩(Roy Fielding)의 박사학위 논문에서 최초로 소개되었습니다. 로이 필딩은 HTTP의 주요 저자 중 한사람으로서 그 당시 웹(HTTP) 설계의 우수성에 비해 제대로 사용되어지지 못하는 모습에 안타까워하며 웹의 장점을 최대한 활요할 수 있는 아키텍처로써 REST를 발표했습니다. 왜 REST에 대한 관심을 갖게 되었을까요? - 프론트엔드(Front-End)와 백엔드(Back-End)가 분리되기 시작 - 새로운 서비스 개발을 위해 개발작업 진행 - JSON 형태로 데이터를 제공하는 API를 제공하자고 동의 - RequestMethod(HTTP : GET, POST, .. 2020. 4. 3.
스프링 시큐리티란? 1. 스프링 시큐리티란 무엇인가? 스프링 시큐리티를 이해하기 위해서 스프링 시큐리티가 무엇인지를 알아야합니다. 스프링 시큐리티 레퍼런스에서는 자바 EE 기반의 엔터프라이즈 소프트웨어 애플리케이션을 위한 포괄적인 보안 서비스들을 제공하고 오픈 플랫폼이면서 자신만의 인증 매커니즘을 간단하게 만들 수 있다고 자랑(?)하고 있습니다. 하지만, 신입 개발자들 수준에서 스프링 시큐리티와 같은 보안 기술을 이해하기란 참 힘든 과정이라고 생각합니다. 스프링 시큐리티를 이해하기 위해서는 스프링 시큐리티가 애플리케이션 보안을 구성하는 두가지 영역에 대해서 알아야 합니다. 바로 인증(Authentication)과 권한(Authorization)이라는 것입니다. 이 두 영역은 스프링 시큐리티의 목표이기 때문에 반드시 이해하고.. 2020. 2. 18.
잘난척하는 직장동료와 잘 지내는 3가지 방법 직장에서의 나르시시스트들을 좀 더 이해하기 쉽게 표현하자면 허세충, 잘난척쟁이로 말할 수도 있다. 이들은 항상 말이 많다. 과장된 표현을 좋아하고 어떤 일에 대해 확대 재생산하거나, 극적으로 말하는 것을 좋아한다. 사실 병적인 자기애와 건강한 자기애를 구분하는 것은 쉽지 않다. 대한민국처럼 비교당하기 쉽고, 열등감에 취약한 곳에서 살아가는 동안 어느 정도의 자기애는 꼭 필요하다. 중요한 것은 건강했던 자기애가 병적인 시점으로 바뀌는 시점을 알아채는 것이라 하겠다. - 자기애적 인격성향의 특징 1. 자신이 아주 중요한 사람이라고 생각하는 망상적인 느낌. 2. 성공과 권력, 아름다움, 이상적인 비현실적인 사랑에 집착한다. 3. 지나친 존경을 주변에 요구한다. 거만하다. 4. 특별한 대접을 받아야 한다고 느낀.. 2019. 11. 27.
퇴사는 회사가 아니라 '상사'를 떠나는 것 “직장인이 퇴사를 결심하는 가장 결정적인 이유는?” (우리 모두가 생각하는 대로) ‘상사’ 때문이라고 합니다. 취업포털 인크루트가 직장인 1206명을 대상으로 설문조사한 결과인데요. 퇴사 고민은 연봉에서 시작되는 듯하지만, 결정적인 원인은 결국 사람 때문이라는 겁니다. 출처 동아일보 DB (안 그래도 16일부터 직장 내 괴롭힘 금지를 명시한 근로기준법 개정안이 시행된다고 합니다. 폭언, 험담, 폭행뿐만 아니라 회식 참여 강요, 개인 심부름까지 모두 직장 내 괴롭힘으로 분류된다고 하니, 대한민국 부장님들 조심해야겠어요.) 이스라엘의 샤론 토커 박사는 직장 내 인간관계에 대하여 한층 더 심각한 연구 결과를 발표한 바 있습니다. '직장 내 동료와의 유대감이 낮은 사람은 그렇지 않은 사람에 비해, 향후 20년 .. 2019. 11. 14.
고신용자가 뽑은 신용관리 키워드 6가지 금융생활에 있어서 가장 중요하다고 할 수 있는 것 중 하나는 바로 ‘신용’이다. 경제활동을 하고있는 사람이라면 누구에게나 꼬리표처럼 달리는 ‘신용’은 어떻게 관리를 해 왔느냐에 따라 금융생활의 질을 좌지우지 하기 때문이다. 어떤 이는 높은 신용점수를 통해 낮은 이자의 대출을 활용하는가 하면, 또 어떤 이는 ‘시간 부족’, ‘바쁜 직장생활’ 등등을 핑계 삼아 잘못된 관리나 무관심으로 신용상태를 망가뜨리기도 한다. 여기서 우리는 고신용자들의 신용생활을 자세히 들여다 볼 필요가 있다. 같은 금융생활을 하더라도 이들의 결정에는 이유가 있기 때문이다. 과연 고신용자들은 신용관리에 있어서 어떤 키워드를 주목하고 있는 걸까? 고신용자가 뽑은 신용관리 키워드 7가지 알아보도록 한다. 키워드1. 신용점수 조회 고신용자들.. 2019. 11. 12.
목소리의 힘 [DBR/동아비즈니스리뷰] 목소리는 상대방을 평가하는 중요한 요인 중 하나다. 사람들은 무의식적으로 목소리가 좋고 나쁨을 평가해 호감 또는 반감을 가진다. 이 때문에 목소리는 호감을 사거나 이성을 유혹하는 데 가장 매력적인 무기다. 뿐만 아니라 목소리는 남성의 사회생활에도 큰 영향을 미친다. 리더의 목소리가 CEO의 커리어에 큰 차이를 가져온다는 연구 결과도 있다. 어떤 목소리의 CEO가 더 큰 기업에서 일하고, 연봉도 높게 나타났을까. DBR 170호의 내용을 요약해 소개한다.☞원문 기사 더보기​ 출처 게티이미지뱅크 목소리가 말해주는 것들: 매력, 호소력, 사회적 지위? 우리는 목소리를 통해 성격, 체구, 나이, 호르몬 등 많은 것을 알아낼 수 있다. 과학자들은 목소리가 유전자 품질을 드러내는 지표라고.. 2019. 11. 12.
스프링 프레임워크 동작 순서 및 구조 Spring Framework (스프링프레임워크) 기본적인 동작 순서 및 구조에 대해서 정리해봤습니다. 전체적인 구조가 잘 정리되어있는 블로그가 있어서 이미지와 PDF 파일을 참고했습니다. ( 이미지 및 파일 출처 : http://server-engineer.tistory.com/253 ) Spring_기본 동작순서_및_구조.pdf 전체적인 실행 순서입니다. Request -> DispatcherServlet -> HandlerMapping -> Controller -> Service -> DAO -> DB -> DAO -> Service -> Controller -> DispatcherServlet -> ViewResolver -> View -> Response 사진 출처 : http://blog.da.. 2019. 11. 12.
마우스 우클릭 방지 / 개발자도구(F12) 방지 1. 아래의 소스코드를 2. 안에 아래의 태그를 입력한다. - oncontextmenu='return false' - 우클릭방지 - onselectstart='return false' - 블럭선택방지 - ondragstart='return false' - 드래그방지 P.S. 키보드 버튼 식별코드 출처: https://server-engineer.tistory.com/563?category=689599 [HelloWorld] 2019. 11. 12.
MVC와 DispatcherServlet에 대해서 이전 장까지 MyBatis와 커넥션풀의 활용, 그리고 트랜잭션에 대해 상세히 알아보았습니다. 개인적으로 이 정도의 환경이라면 소, 중형 서비스 구축에는 문제없을 정도로 환상적인 제작환경이 구축됬다고 할 수 있겠네요. 또 실제로 많은 웹개발자들이 이런 포맷을 사용하고 있구요. 이제 우리가 해야 할 것은 누구나 탐낼만한 좋은 개발환경을 구축했으니 드문드문 처리해야할 애매한 문제들을 하나씩 알아나가보는 과정입니다. 그 중 오늘은 우리가 해결해야할 것은 바로 web.xml에 설정한 DispatcherServlet에 대해 알아가고 발생할 수 있는 문제점을 해결하는 것입니다. 스프링MVC는 DispatcherServlet 등장으로 정말 엄청나게 web.xml의 역할이 축소되었습니다. 예전같으면 서블릿을 URL로 활.. 2019. 11. 12.
오라클 분석 함수 -- 분석 함수 -- RANK OVER() -- ROW_NUMBER() OVER() ** 중요 제일 많은 씀 ** -- 순위를 구함. -- RANK() OVER()는 동일 순위인 경우 1,1,3, 형식으로 출력하지만 -- ROW_NUMBER() OVER()는 동일 순위인 경우 1,2,3, 형식으로 출력 -- DENSE_RANK() OVER()는 동일 순위인 경우 1,1,2 형식으로 출력 -- ROW_NUMBER() OVER()는 매우매우매우 중요한 함수이므로 반드시 알아 둘것 !!!!!!!!!!!!!!!!!!!!!!! --기본급 내림차순으로 순위를 구하기 SELECT name, basicpay, RANK() OVER(ORDER BY basicpay DESC) 순위 FROM insa; -- 비교데이타가 똑.. 2019. 10. 2.
8단계로 끝내는 구글 SEO 실천법 들어가며 본 가이드는 SEO에 대한 기본적인 배경지식과 SEO 기법들을 알고자 하는 마케터와 개발자들에게 좋은 가이드입니다. SEO란 무엇인가? SEO는 한 마디로 내 웹사이트를 구글이나 네이버와 같은 검색엔진의 검색결과 상단에 노출시킬 수 있도록 최적화하는 방법입니다. SEO(Search Engine Optimization)는 우리말로 검색엔진최적화입니다. 비용을 들이지 않고 기존에 가지고 있는 콘텐츠만을 활용하여 무료 트래픽을 확보할 수 있게 해준다는 점에서 마케팅 관점에서 상당히 매력적인 마케팅 방법이라고 할 것입니다. SEO를 잘하면 검색엔진 검색결과 상단에 노출되어 무료 트래픽을 얻을 수 있는 것은 사실입니다. 그래서 한 때 이 이점을 노리고 소위 "블랙햇(Black Hat)"이라는 불리는 SE.. 2019. 9. 26.