레이블이 API/IF/개발인 게시물을 표시합니다. 모든 게시물 표시
레이블이 API/IF/개발인 게시물을 표시합니다. 모든 게시물 표시

2022-09-29

SELECT * 사용에 대한 특징 간략정리

*는 별표이며 문자라고도 하고 애스터리크(Asterisk)라고 하는데요. 상징,기호,표시,각주,참고 등 여러 의미가 있는것 같습니다. 시스템을 개발하거나 운영하는 경우 대체로 EAI에서 여러 DB와 연계할때 SELECT * 를 아니면 SELECT 컬럼명으로 조회하는 경우가 있는데 습관적으로 사용하는 방법에 대해 간략하게 정리를 해보고 나중에 구체적인 내용도 기회되면 내용을 추가해봐야겠습니다.

  • * 사용시 불필요한 컬럼까지 Fetch하게 됩니다.(응답시간이 증가)
  • Index only access, Index only scan을 사용할수 없습니다.(select할 컬럼에 인덱스 존재 시)
  • SybaseIQ같은 DB는 Column in block저장방식을 택하고 있어 아스타리크를 사용 시 성능차이가 클수 있다고 합니다.(DB마다 다를듯)
  • SELECT * 은 가독성 및 향후 운영(유지보수 관점)을 위해 지양한다고 합니다.
  • Spring같은 프레임워크에서는 자동매핑을 선호하여 select *를 사용하는 경우가 있다고 합니다.(단, 컬럼명 수정/삭제 되는 경우 오류가 발생될수 있다고 함)
  • 리소스 사용률이 높아지고 지연시간이 길어질수 있다고 합니다.
  • SELECT *를 사용 시 많은 열의 캐싱을 시도합니다.(사이즈가 큰 TEXT나 BLOB 컬럼타입도 존재) 
  • SELECT *를 사용하여 다른 테이블로 복사 시 잘못된 열에 복하는 경우도 있다고 합니다.(두개의 테이블의 컬럼순서가 다른경우)

2022-08-15

아파치 카프카에 대한 간단한 정리

아파치 카프카에 대해 간단하게 정리해보겠습니다.


카프카란?

실시간으로 대용량,대규모 데이터를 처리할수 있는 고성능 TCP네트워크 프로토콜을 통해 통신하는 서버와 클라이언트로 분산*데이터스트림 플랫폼(분산메시징플랫폼)이라고 하며 EAI같이 예를들어 A와 B아니면 C로 필요한곳에 데이터를 동시에 전송가능하기 위해 링크드인(LinkedIn)에서 2011년초 오픈소스로 개발한 내부시스템였지만 현재는 많은 곳에 사용되는 메시징시스템의 대안이 될수 있는 데이터 스트리밍 솔루션인것 같습니다. 뭔가 어려운데요?
어떤글에는 메일로 비유하여 쉽게 카프카 개념을 설명한 글이 있는데요.
"메일을 보내는 사람은 받는 사람의 주소를 알고 메일을 보내면 받은 사람은 언제든지 메일을 볼수 있다"

2022-07-28

Azure(애져) File REST API가 뭔가요?

SAP PO운영을 하다보면 여러 플랫폼,기술,솔루션 등에서 만들어진 시스템들과 연계하는 일이 자주 있으며 이번에는 Azure(애저) Files의 REST API에 대해 듣게 되어 간략하게 정리를 해보려고 합니다.

Azure File란?

애져 파일은 산업표준 SMB(서버메시지블록?) 또는 NFS(네트워크파일시스템) 프로토콜을 통해 엑세스 할수 있는 파일 공유를 제공하며 SMB나 NFS를 통한 파일 공유해서는 Windows,Linux,macOS 등 여러 운영체제의 클라이언트에서 엑세스가 가능하다고 합니다.

Azure Files REST API란?

애져 파일 서비스에 저장된 데이터에 엑세스 가능한 REST API를 제공하는데 기본 파일 시스템 API를 사용하여 원격파일에 공유나 엑세스 할수 있는 SMB나 NFS와는 다르다고 합니다. 실행방식은 C#,JAVA,JavaScript 등 여러 개발언어에 대한 API를 제공하여 Azure Sdk를 통해 수행 가능한것 같습니다.

파일 REST API의 특징을 보면 애져파일 용으로 설계되었으며 SMB나 NFS를 통해 엑세스 할 수 없는 애져파일 기능에 엑세스가 가능한것 같고 효율적인 복사 등의 작업을 수행할수 있는것 같고 애져 파일 공유에 엑세스하는 클라우드 서비스 또는 응용프로그램에서는 File REST API를 사용하는게 더 유용한것 같습니다. 

PO에서는 관련 어댑터는 없고 REST어댑터를 통해 엑세스를 해야될것 같은데요. 만약 이것도 안되면 자바프록시 등을 통해 애져파일 REST API에서 제공하는 소스나 라이브러리를 통해 엑세스하는 방법을 찾아볼수도 있을것 같습니다. 자세한건 

'Azure Files REST API' 사이트를 통한 내용을 참고하면 도움이 될것 같습니다.

2022-06-16

MYSQL프로시 호출시 User does not have access to metadata required to determine stored procedure parameter... 에러 해결방법

SAP PO와 MYSQL 프로시저 동기방식으로 연계시 발생된 에러발생 후 해결하는 과정에 대해 정리를 했으며 연계하는 프로시저는 INPUT,OUTPUT 존재했는데 오라클 프로시저 연계할때와는 Request,Response구조나 DB호출파라메터가 달라지는것 같습니다.

첫번째에러내용

java.sql.SQLException: User does not have access to metadata required to determine stored procedure parameter type. If rights an not be granted, configure connection with 'noAccessToProcedureBodies=true' to have driver generate parameters that represent INOUT strings irregardless of atual parameter types
번역기를 돌려보면 연계하는 MYSQL DB의 권한확인이나 PO에서 호출하는 JDBC호출 URL에 파라메터 추가 한 후 테스트가 필요해보이는것 같습니다.

2021-06-26

CXF Webservice(SOAP) Provider for File Attachment In JAVA and SAP PO - Server Side

테스트환경

Eclipse Version 2018-12(4.10.0)
JDK 1.8._201
Tomcat 8.5
CXF 3.3.3

SOAP UI -> JAVA(CXF) 파일 전송

1. Webservice(SOAP) Provider 프로젝트 생성

이클립스에서 Dynamic Web Project를 만들어 웹서비스를 위한 클래스와 메서드를 생성
오른쪽 마우스버튼 > Web Service > Create Web Service를 클릭하여 해당하는 메서드의 CXF 웹서비스를 생성하면 WEB-INF 아래 cxf-beans.xml과 WSDL파일이 생성됩니다.

2021-06-11

Difference between PO/PI/XI XML version 0.1 and 1.1


기본적으로 XML포맷으로 인터페이스를 하는 SAP XI/PI/PO에서 소스,타겟 간에 테스트나 운영중인 인터페이스에서 이상한 문자로 인한 매핑에러가 발생되는 경우가 있습니다.
"Character reference &# See error logs for details"
이렇게 XML에서 허용안하는 문자에 대해 가끔 에러가 발생되어 송신측이 SOAP인경우 CDATA로 인한 데이터를 묶어주거나 JDBC인경우 송신측 문제가 되는 데이터를 삭제해주는데 PO에서는 자바매핑으로 해결하는 경우도 있습니다.
근데 이런방법들도 완벽하지 않은게 PO에서는 어떤 문제가 되는 데이터가 유입되는지는 알수 없기에 100% 해결될수 없는 부분이 있다고 생각이 듭니다.

다른 사이트에서 보았는데
SOAP호출시 사용되는 CDATA로 묶이는 데이터에도 허용안하는 문자들로 인해 이클립스 안에서 에러가 발생될수 있다고 하네요.
"An invalid XML character (Unicode: 0xb) was found in the CDATA section"
송,수신간에 OAP연결 방식에도 SOAP버젼이 1.1과 1.2가 존재하는데 이 두개가 W3C(World Wide Web Consortium) 표준이라고 하는데 SOAP 1.1버젼은 XML 1.0이라고 합니다.

2021-04-27

Resolving an error that occurs when executing the WSDL file Generate Client in Eclipse

SAP PO의 Audit로그를 간단하게 보기위해 Directory API사용을 하려고하는데 'AdapterMessageMonitoringVi' WSDL파일을 사용할때 오류가 발생됩니다.

현상, 에러

Apache CXF 3.3.3버젼으로 사용시 아래와 같은 에러발생
WSDLToJava Error: org.xml.sax.SAXParseException; schema_reference:
accessExternalSchema 속성으로 설정된 제한으로 인해 'http' 엑세스가 허용되지 않으므로 스키마 문서 'ws-addr.xsd' 읽기를 실패했습니다.

2021-01-14

Why use Oracle cursor_sharing?

alter session set cursor_sharing를 왜 사용하는 걸까?
SAP PO에서 JDBC Receiver채널을 사용할때 바인딩, 배치모드를 사용하지 않는 이상 리터널(Literal)SQL로 실행하는걸로 알고 있습니다. 리터널 SQL은 WHERE절에 비교되는 상수값을 하드코딩해서 사용하는 것을 말하며 그 반대로 바인딩 모드가 있는데 WHERE의 조건에 :A 형태로 값들이 바인딩 되는 변수를 이야기합니다. 예를 들면 일반적으로 사용하는 쿼리 select * from dual where id = 1 와 다르게 id = 1을 id = ? 로 사용하여 변하는 조건만 바인드변수에 치환만 하여 사용하는 것입니다. 자바에서는 Statement와 PreparedStatement로 비교가 되겠네요.

2020-12-22

오래전 개발관련 툴,환경설정 정리내용


2020-12-07

오래된 DB관련 자료 정리내용

오라클 에러 모음

java.sql.SQLException: Listener refused the connection with the following error:
    ORA-12519, TNS:no appropriate service handler found

데이터베이스의 프로세스 부분에 과부화가 걸려서 나오는 에러 메시지다.
sysdba로 접속한 후에 ALTER SYSTEM SET PROCESSES=150 SCOPE=SPFILE;” 프로세스를 늘려준다.
끝난 후에 commit; 하는 것을 잊으면 안된다.
SPFILE로 설정되지 않고 시작되었다면, 다음과 같은 에러를 출력한다.
ORA-32001: write to SPFILE requested but no SPFILE specified at startup

자료출처 : http://cafe.naver.com/tonkjsp
 

2020-12-02

오래전 자바스크립에서 정리했던 내용

자바스크립트 기본

외부파일 이용하기


경고창 출력하기

alert("아이디가 없거나 비밀번호가 틀립니다");

 

변수선언

var 변수명

var 변수명 = 초기값

변수이름 = 값

 

배열선언

[객체생성]

배열명 = new Array(첨자)

배열명 = new Array()

[초기화]

배열명 = new Array(초기값...)

배열이름 = [초기값...]

자바 API 만들기


package day0827;

/**
 * @author Owner 이 클래스는 클래스의 기본 작성방법을 알아보기위해서

 *         작성하는 클래스로 대상은 볼펜이 대상이고

 *         간단한 객체 모델링 작업으로 만드는 클래스 입니다.

 *         사용법) BallPen bp=new BallPen();

 *         bp.setXxx(설정값); 을 넣어서 볼펜을 만들고 사용 홍길동
 */

GWT(Google Web Toolkit)

Google Wwb Toolkit의 약자로, JAVA를 사용한 Web Ajax Application을 개발하기 위한
Open Source의 Software Develop Framework를 말한다. 


※ 참고사이트 - https://developers.google.com/web-toolkit/?hl=webtoolkit 
 - 개발환경 설정 : http://blog.danggun.net/1081
   http://blog.dt.co.kr/blog/?id=272&mb_id=hoonyy
 - 동영상 강좌 : http://clien.career.co.kr/cs2/bbs/board.php?bo_table=lecture&wr_id=66000 
 - GWT Designer가 안보일때 : JAVA파일, 오른쪽 마우스 버튼클릭 > Open With 클릭 > GWT Designer 클릭 

 

GXT 2.2.6에서의 Chart 구현

    




HorizontalBar.gwt.xml---------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='horizontalbar'>
  <inherits name='com.google.gwt.user.User'/>
  <inherits name='com.google.gwt.user.theme.clean.Clean'/>
 

GXT 3.0에서의 Chart 구현


BarChart.gwt.xml--------------------------------------------------------------------------------------- 

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='barchart'>
  <inherits name='com.google.gwt.user.User'/>

  <inherits name='com.google.gwt.user.theme.clean.Clean'/>
 
  <inherits name='com.sencha.gxt.chart.Chart' />

  <entry-point class='com.bangtae.chart.client.BarChart'/>

  <source path='client'/>
  <source path='shared'/>
</module>

BarChart.java---------------------------------------------------------------------------------------

2020-08-11

오래된 자료, 스타일시트(CSS2) 내용정리

■ CSS 속성


- 좌우배치

제목

속성

그림 등
좌우배치

float

left(그림을 왼쪽에 배치)
right(그림을 오른쪽에 배치)
none(좌우배치와 삽입이 실행되지 않는다)

배치 해제

clear

left(왼쪽 요소에 대한 삽입 해제)
right(오른쪽 요소에 대한 삽입 해제)
both(양쪽 요소에 대한 삽입 해제)
none(삽입을 해제하지 않음)

 

오래된 자료, HTML4/5 관련 내용 정리

■ HTML5 관련 사이트


ㆍHTML5
   - HTML5 강좌 : http://www.sqler.com/374157
   - HTML&HTML5 차이점 : http://www.w3.org/TR/2010/WD-html5-diff-20100304/
   - THML5 지원 브라우저 : http://www.quirksmode.org/dom/html5.html
   - 현 브라우저에 HTML5기능이 적용 여부 : http://caniuse.com/#feat=canvas
   - 구문검증
      http://validator.w3.org/
      http://html5.validator.nu/
      http://gsnedders.html5.org/outliner/
   - html5 레이아웃
      http://siana.tistory.com/entry/HTMl5-%EB%A0%88%EC%9D%B4%EC%95%84%EC%9B%83-%EB%A7%8C%EB%93%A4%EA%B8%B0
   - html5 레이아웃 구성
      http://rintiantta.blog.me/40148094029
   - WebSocket : http://m.mkexdev.net/98
   - html5 추가된 기능 : http://nimba.tistory.com/279
   - html5 + css 템플릿 사이트 : http://freehtml5templates.com/template-portfolio/
 

2020-07-25

오래된 자료, 웹프로그래머로 전향할때 정리했던 기본용어

오래된 자료, 프로그래머로 전향할때 정리했던 기본용어

■ 위지윅방식(WYSIWYG)과 하드코딩방식(Hard Coding) 비교와 장단점

1. 위지윅 방식과 하드코딩 방식의 비교와 장,단점

위지윅 : 
① HTML을 몰라도 기본적인 HTM문서를 작성할 수 있다.
② 디자인적으로 복잡한 레이아웃의 문서를 작성하는테 편리하다.

하드코딩 :  
① 자신만의 개성이 담긴, 깔끔한 소스를 작성할 수 있다.      
② 자바스크립트, 서버페이지(ASP, PHP, JSP) 프로그래밍이 용이하다.

2. 위지윅 방식의 홈페이지 에디터인 나모 웹 에디터와 드림위버의 각각의 특징

이것은 콕 집어 내기가 힘드네요. 사실 웹에디터가 기본 개념을 알면 비슷하잖아요.
저는 프론트페이지, 나모, 드림위버, 등의 에디터를 사용해 보았는데요.
① 나모는 초보자가 사용하기에 편한것으로 보입니다.
    메뉴구성도 그렇고, 한글도움말도 잘 되어 있구요.
② 드림위버는 주로 웹디자이너들이 많이 쓰더군요.
    메뉴구성이 복잡한 면이 없지 않지만, 일단 익숙해지면 막강한 툴이라고 할 수
    있겠습니다.

3. 하드코딩 방식의 홈페이지 에디터인 메모장과 UltraEdit의 각각의 특징

메모장 : 
① 새로운 프로그램 설치작업 없이, 대부분의 윈도우즈에 내장되어 있다.
② 에디터로서, 가장 적은 시스템리소스만을 사용한다.

울트라에디터 : 
① 태그와 함수의 컬러기능이 제공된다.             
② 여러개 문서의 동시작업이 가능하다.                 
③ Find, Replace, 매크로, 등등 막강한 메뉴를 가지고 있다.

■ 하드코딩이란,

드림위버같이 자동으로 소스가 생성되는 툴이 아닌 메모장과 같은 타이핑만 할 수 있는 툴에타이핑으로만 코딩이 가능하냐고 묻는 겁니다.
드림위버나 나모 같은경우 이미지를 던져 넣으면 자동으로 소스가 생성되지만 쓰레기값이 많이 들어가게 되죠.
하지만 직접 하나 하나 코딩하게되면 정확게 원하는 위치에 원하는 것만 표현 할 수 있습니다.
이걸 하드코딩이라고 합니다.


2020-03-02

OpenAPI를 사용하여 티스토리 자동글쓰기

안녕하세요?
이전에는 XML-RPC를 사용한 네이버 블로그 API 글 등록을 해봤었습니다. 이번에는 Open API를 사용하여 티스토리에 글쓰기를 해보겠습니다.
티스토리는 주요기능이 포함된 OAuth2.0 기반 Open API를 제공합니다. 보안 프로토콜과 함께 REST방식을 지원하며 이기능을 사용하여 티스토리에 글쓰기를 하는 과정을 담았습니다. 예전에 티스토리도 XML-RPC방식으로 글쓰기가 가능한것 같습니다만 현재는 지원을 안하는것 같으며 글등록 개수도 제한이 되어 현 가입한 사용자는 하루 글등록 개수가 15개이며 예전 사용자는 글을 더 등록할수 있는것 같습니다.

2020-02-16

쿠팡파트너스 API를 사용하여 상품정보 가져오기

안녕하세요?
몇달전부터 쿠팡파트너스를 이용한 제휴마케팅 또는 어필리에이트에 대해 인터넷에서 활봘한 활동이 이루어지고 커뮤니티 공간도 많이 생긴것 같습니다. 저도 이부분에 대해 관심있는 사람들중 한명입니다. 그래서 쿠팡파트너스에 대해 알아보고 제공하는 API를 통한 상품정보를 가져오는 테스트를 해볼려고 합니다.

쿠팡파트너스에 대해서는 이전에 포스팅했던 '쿠팡파트너스 활용방법'에 대한글을 봐주셨으면 좋겠습니다. 어필리에이트는 구매전환이 이루어지는 상품링크를 자신이 운영하는 사이트에 광고를 하여 수익을 발생시키는 매체사를 뜻하며 제휴마케팅(Affliate marketing)은 상품 판매/광고 기법으로 어필리에이트에 머천트(Merchant) 광고주가 제공하는 상품을 구매전환을 발생시켜 수익을 얻는 것입니다. - 위키백과 참조

최근글

2026년 5월 8일 데일리 뉴스요약