pythonchoboman의 등록된 링크

키자드에 등록된 총 265개의 포스트를 확인하실 수 있습니다.

Tistory

[ SAPUI5 ] / Data Binding

SAPUI5에 대한 이해도를 제고하기 위하여 UI에 관한 데이터를 구성하고 화면에 이를 표현하기 위해 필요한 핵심 용어들과 구현 절차에 대해 아카이빙을 시작하고자 한다. SAP 공식 홈페이지에서 제공하는 도큐먼테이션뿐만 아니라, 인터넷에서 발췌 및 재사용 가능한 정보들을 깔끔하게 정리해 해당 지식을 적절히 활용할 수 있을 것 같다. Debuging "브라우저의 개발 툴을 사용해 JavaScript 디버깅 중단점을 설정할 수 있다." "Internet Explorer에서는 스크립트디버깅을 명시적으로 활성해야 한다." Data Binding "Model은 Data를 적재하고 Data Source에서 Data를 가져와 Setting 및 Update할 수 있는 메서드를 제공한다." 즉, 데이터에 대한 변수를 선..

Tistory

[ SAPUI5 ] / Component

이번 파트에서는 Fiori에서 SAPUI5 애플리케이션이 어떻게 작동하게 되는 지에 대해 학습하는 시간을 가질 것이다. 기본적으로 화면에서 View를 표현하기 위해서는 Controller뿐만 아니라, 데이터를 저장하거나 가공하기 위해 존재하는 Model로 데이터 정보를 전달하기 위해 필요한 Component와 App Explorer 등의 기능과 역할에 대해 알아가보고자 한다. Component "Component는 [ Compoenet.js ] 파일에서 구현된다." "App Explorer는 [ manifest.json ] 파일에서 설정한다." "[ manifest.json ] 파일에는 모든 전역 어플리케이션 설정과 매개변수가 내재돼 있는 JSON 형식의 Component Object가 Contenet로..

Tistory

[ 정보처리기사 ] 실기 / 2021년 3회 1~10번

다음 Java 코드에 대한 알맞은 출력값을 쓰시오. class Connection { private static Connection _inst = null; private int count = 0; static public Connection get() { if(_inst == null) { _inst = new Connection(); return _inst; } return _inst; } public void count() { count ++; } public int getCount() { return count; } } public class testcon { public static void main(String[] args) { Connection conn1 = Connection.get();..

Tistory

[ 정보처리기사 ] 실기 / 2021년 2회 11~20번

다음 각 번호에 해당하는 응집도를 보기에서 찾아 쓰시오. (1) 입출력 간 연관성은 없으나, 순서에 따라 수행할 필요가 있다. (2) 동일한 입출력을 사용한다. (3) 하나의 기능에 모두 기여하고 밀접하게 관련되어 있다. [ 보 기 ] 기능적(functional), 시간적(temporal), 교환적(communication), 절차적(procedual), 순차적(sequential), 우연적(coincidental), 논리적(logical) (1) 절차적 응집도 (2) 교환적 응집도 (3) 기능적 응집 다음에서 설명하는 패킷 교환 방식을 작성하시오. (1) 목적지 호스트와 미리 연결한 후, 통신하는 연결형 교환 방식이다. (2) 헤더에 붙어서 개별적으로 전달하는 비연결형 교환 방식 (1) 가상 회선 방식..

Tistory

[ SAPUI5 ] JSONModel Table Binding in SAPUI5

직원 정보 테이블 생성하기 SAP 공식 홈페이지에 있는 UI5 관련 도큐먼테이션을 참고하여 개인 스터디를 진행하는 도중 문득 한 가지 생각이 스쳐지나 갔다. 그 생각인 즉슨, 무작정 공식 문서를 따라하는 거보다는 가이드라인을 참고하여 나만의 예제들을 만들면서 기능을 구현해 보자는 것이다. 물론 아직까지 내가 할 수 있는 영역은 아주 협소할 것임을 알기에, 결국에는 여러 예시들을 종합해서 모방하는 것에 그칠 수도 있다. 하지만 view와 controller 간의 연결 과정과 data를 binding하는 절차에 대한 이해도가 현저히 낮다고 생각이 들기 때문에 그 순서를 익히는 데에 중점을 두고자 한다. 테이블의 기본 틀 만들기 직원 정보를 화면에서 보여주기 위해서는 테이블을 만들어 해당 정보들을 담아내는 아..

Tistory

별 헤는 밤이 생각나는 밤.

오늘은 퇴근을 하고 무작정 따릉이를 빌려 집으로 갔다. 뭔가 아무 생각없이 경치나 구경하자고 탔는데 갑자기 이어폰에서 나오는 봄 여름 가을 겨울 노래가 참 마음을 아리게 했다! 원래는 이런 가사의 노래를 좋아하지 않았는데 가사를 듣다보니 울적하기도 하면서도 속이 후련해지기도 하였다. 비록 가을은 아니지만 환절기인 만큼 또 새로운 도전과 기회가 있을 것임을 알기에 설레보기로 했다. 거의 20km를 달려왔더니 허벅지가 터질 거 같다 ㅎㅎ 내일도 타볼까...? 모두 오늘도 고생했습니다!

Tistory

[ SAPUI5 ] View Management

기본 view를 변경하거나, 새로운 view를 생성하고 쿼리가 자동으로 실행되도록 해보자. - [ VariantManagement.view.xml ] - [ Component.js ] sap.ui.define([ "sap/ui/core/UIComponent" ], function(UIComponent) { "use strict"; return UIComponent.extend("sap.ui.demo.smartControls.Component", { metadata: { manifest: "json" }, init: function () { UIComponent.prototype.init.apply(this, arguments); }, destroy: function () { UIComponent.pr..

Tistory

[ SAPUI5 ] Page Variant Management

이번 파트는 뭘 말하려고 하는지 잘 모르겠지만 정리라도 해놓자... - VariantManagement 1) Personalization를 위해 페이지 view를 변동시키는 것은 persistenceKey 필요하다. 2) 페이지의 변화가 persistenceKey 속성으로 초기화되고, 여러 스마트 컨트롤의 지속성을 처리 할 수 있게 된다. 3) 각 컨트롤에 대한 관련 콘텐츠는 각 개별 persistenceKey에 따라 적절하게 배포된다. - [ VariantManagement.view.xml ] - 페이지를 변동시킴으로써 view management는 더이상 SmartFilterBar 및 SmartTable 컨트롤의 일부가 아니라 중앙에 표시된다. - SmartFilterBar 컨트롤의 필터 대화상자..

Tistory

[ SAPUI5 ] Smart Filter Bar and Smart Table

enableAutoBinding을 사용해 controller가 아닌 view에서 데이터를 자동으로 바인딩 해보자. - [ SmartTable.view.xml ] 1) 'smartFilterBar'에서 'ControlConfiguration' 컨트롤을 추가한다. * [ metadata.xml ]에 있는 데이터 값을 화면에서 보기 위해 설정한 ''entityType'을 참조하도록 한다. * 'ControlConfiguration' 요소를 사용해 필터가 표시돼 있는 표시줄에 'Category' 필드를 포함시킨다. * 필터 기능을 하는 바를 숨길 수 있는 도구를 사용해 숨기거나 표시할 수 있는 영역을 구현할 수 있다. 2) 'SmartTable'의 설정 값을 환인해보자. * smartFilterId : 's..

Tistory

[ SAPUI5 ] Table Personalization

데이터의 정보를 자신이 원하는 정렬 방식대로 필터링 해보자. - Table Personalization 1) 테이블에서 표시되는 열과 순서, 데이터 정렬 방법, 데이터 그룹화 활성화 여부 2) 그리고 테이블 항목의 필터링 여부를 지정할 수 있는 정용 대화 상자를 제공한다. - [ Personalization.view.xml ] 1) 'sap:sortable'과 'sap:filterable', 'sap:groupable'을 'false'로 설정한다. 2) 이는 표시되지 않은 필드를 모두 정렬화, 필터링 또는 그룹화 할 수 있다는 것을 의미한다. - 톱니바퀴 모양의 설정 아이콘을 클릭하면 각 요소에 대한 설정을 변경할 수 있다! Next Stage :

Tistory

[ Diary ] 노트북이 희생 당했다.

나의 불찰로 가방 안에서 커피가 쏟아졌다. 노트북과 충전기가 함께 있는 가방에서 말이다. 후아 충전 단자 하나가 먹통이 된 것 말고는 괜찮단다... 하나 더 배워간다... 오늘도 파이팅 ㅠㅠㅠㅠ

Tistory

[ 정보처리기사 ] 실기 2021년 2회 1~10번

네트워크 장치를 필요로 하지 않고 네트워크 토폴로지가 동적으로 변화되는 특징이 있으며 응용 분야로는 긴급 구조, 긴급 회의, 전쟁터에서의 군사 네트워크에 활용되는 네트워크는? Ad-hoc 다음에서 설명하는 개념을 쓰시오. (1) 사람의 감정이나경험을 나타내는 개념이다. (2) 예로서 CLI가 있는 사용자 인터페이스이다. (1) UX(User Experience) (2) UI(User Interface) 트랜잭션의 특징중, 원자성(Atomicity)에 대해 약술하시오. 원자성이란 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 것을 말한다. 즉, 트랜잭션이 DB에 모두 반영되거나, 전혀 반영되지 않아야 함을 의미한다. 테이블의 튜플을 수정하고자 한다. 올바른 SQL을 작성하기 ..

Tistory

[ SAPUI5 ] Smart Field with Smart Link

바인딩할 데이터에 링크를 연결해 view에서 보여주기 - [ SmartLink.view.xml ] - [ SmartLink.controller.js ] sap.ui.define([ 'sap/ui/core/mvc/Controller', 'sap/ui/demo/smartControls/test/service/UShellCrossApplicationNavigationMock' ], function(Controller, UShellCrossApplicationNavigationMock) { "use strict"; return Controller.extend("sap.ui.demo.smartControls.SmartLink", { onInit: function() { this.getView().bindEle..

Tistory

[ SAPUI5 ] Smart Form

상품에 대한 정보와 공급자의 정보를 편집할 수 있도록 한다. - SmartForm 1) sap.ui.layout.form.Form 컨트롤을 사용한다. 2) SmartField 컨트롤과 함께 SmartForm 컨트롤을 사용하는 경우에는 레이블 및헤더에 대한 필수 정보가 노출되기 때문에 [ view.xml ]을설정하는 데에 있어서 매우 간편하다. 3) 이와 더불어, 읽기 전용 모드와편집 모드 사이를 전환할 수 있는 옵션이있는 경우 토글 편집이 가능하도록 SmartForm에서 지정이 가능하다. - [ SmartForm.view.xml ] 1) 'Product'용과 'Supplier'용의 'SmarForm' 컨테이너 가각 만든다. * 'GroupElement'를 사용해 SmartForm이 OData의 메타데..

Tistory

[ SAPUI5 ] Smart Field

mock data의 정보를 통화코드와 연결해 화면에 띄우기 - [ SmartField.view.xml ] 1) SmartLabel의 메타 데이터가 SmartField의 바인딩을 통해 제어된다. 2) 둘 간의 연결은 필수이다. - [ SmartFiled.controller.js ] sap.ui.define([ "sap/ui/core/Controller" ], function(Controller) { "use strict"; return Controller.extend("sap.ui.demo.smartControls.SmartFiled", { onInit: function() { this.getView().bindElement("Products('4711')"); } } }); 1) mockdata에 있..

Tistory

[ SAPUI5 ] Smart Filed with Value Help

통화코드를 변경할 수 있게 리스트를 생성하고, 원하는 정보를 검색할 수 있는 검색 필드 만들기 - [ SmartFieldWithValueHelp.view.xml ] - [ SmartField.controller.js ] sap.ui.define([ "sap/ui/core/mvc/Controller" ], function(Controller) { "use strict"; return Controller.extend("sap.ui.demo.smartControls.SmartFieldWithValueHelp", { onInit: function() { this.getView().bindElement("/Products('4711')"); } }); }); - [ metadata.xml ]

Tistory

[ 돼빠오의 먹부림 ] 제주도 북쪽

네이버 블로그에서 했던 일상 이야기들을 티스토리에서도 풀어나가 보려고 한다. 사실 코딩 공부를 하면서 모르는 개념을 기록해두거나, 오류 코드를 해결했을 때 다음에 참고하고자 시작했던 곳이었지만 계속 포스팅을 하면서 네이버 블로그와는 다르게 다양한 사람들과 소통하며 지낼 수 있는 거 같아 내가 가본 맛집들이나 먹어왔던 여정을 소개하고자 한다. 이 카테고리의 컨셉은 먹부림 지역에 따라 방언이 가미가 되니 넓은 마음으로 아량을 베풀어주기 바란다. 안녕허우꽈? 밥 먹었우광? 대망의 첫 먹부림 편은 지난 제주도 여행에서 먹어봤던 요리들을 소개하멘. 휠스 휠스 : 네이버 방문자리뷰 34 · 블로그리뷰 12 m.place.naver.com 별점 : 그날은 유독 허기졌던 때였기에 일반적인 < 치즈 핫도그 ..

Tistory

[ 정보처리기사 ] 실기 / 2021년 1회 1~10번

물리 네트워크(MAC) 주소에 해당하는 IP 주소를 알려주는 프로토콜로 역순 주소 결정 프로토콜을 무엇이라고 하는지 쓰시오. RARP RARP(Reverse Address Resolution Protocol)란 물리 네트워크를 이용해 논리 주소로 변환시켜 주는 프로토콜이다. 이는 로컬 디스크가 없는 네트워크 상에 연결된 시스템에도 사용된다. 다음은 DB 설계 절차에 관한 설명이다. 다음 빈칸에 들어갈 알맞은 용어를 쓰시오. ( A )은/는 특정 DBMS의 특성 및 성능을 고려하여 데이터베이스 저장 구조로 변환하는 과정으로, 결과로 나오는 명세서는 테이블 정의서 등이 있다. ( B )은/는 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 과정으로 주요 산출물에는 E-R 다이어그..

Tistory

[ 정보처리기사 ] 실기 / 2021년 1회 11~20번

다음 빈칸에 들어갈 알맞은 용어를 쓰시오. IPv6은 ( A ) 비트 길이를 가진다. IPv4는 길이 23bit이며, ( B ) 비트씩 4 부분으로 나눈다. A : 128 B : 8 공유메모리, 소켓, 세마포어, 메세지 큐 등 프로세스 간 통신하는 기술을 무엇이라고 하는지 쓰시오. IPC(Inter Process Communication) 시스템 통합에 사용되는 솔루션으로 구축 유형에는 Point to Point, Hub & Spoke, Message Bus가 있다. 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션 간의 정보를 전달, 연계, 통합이 가능하도록 해주는 솔루션을 무엇이라고 하는지 쓰시오. EAI EAI(Enterprise Application Integration)란 엔터프라이즈의 미들웨..

Tistory

[ Diary ] 고양이들은 말이죠.

제 친구 엄니 아부지가 키우시는, 원래는 내 친구랑 같이 살던 반려묘들이랍니다 ㅎㅎ (넘 귀엽지유?) 친구한테 항상 애들 이름만 말하면 친구가 기계적으로 사진만 보내주죠 ㅋㅋㅋㅋ 저는 딱 소장용이랍니다 ~~~ 다들 파이팅!!

Tistory

[ SAPUI5 ] What is the 'RuleBuilder'?

SAPUI5 SDK - Demo Kit sapui5.hana.ondemand.com class.sap.rules.ui.RuleBuilder class.sap.rules.ui.RuleBuilder - 초기 속성 값, 집합적이고 서로 연결된 객체, 이벤트 핸들러를 정의하는 객체 데이터를 가지는 mSettings를 허용한다. new sap.rules.ui.RuleBuilder(sId?, mSettings?) 1) sId? : string 타입이며, ID가 제공되지 않으면 자동으로 생성되는 컨트롤의 ID 이다. 2) mSettings? : 컨트롤에 대한 초기 설정값이다. - bindingContextPath 1) string 타입을 가진다. 2) RuleBuilder 컨트롤 내의 상대적인 컨텍스트 바인딩의 정의..

Tistory

[ SAPUI5 ] Rule Builder Control / Decision Table - 4

룰 빌더 페이지 컨트롤러 계속해서 분석하기 - [ page.controller.js ] loadRequests: function (mPath) { // The mock server does not support 1 to 1 navigation. // Hence we provide the responses directly by adding custom requests to the MockServer var oRresponses = {}; var getData = function(json) { oRresponses = json; }; this.loadJSON(mPath, getData); var aRequests = this.oRuleMockServer.getRequests(); var sMethod =..

Tistory

[ SAPUI5 ] Rule Builder Control / Decision Table - 5

사용자가 데이터를 편집 및 수정할 수 있도록 세팅 버튼을 만들어 준다. - [ Page.view.xml ] 1) view에 controller에서 설정해두었던 'id' 'rulebuilder'를 불러와 RuleBuilder를 보여준다. * 'types'를 'DecisionTable'로 설정한다. * 'editable'을 'true'로 설정해 편집 가능토록 해준다. 이번 파트는 굉장히 어려웠다... 다음 복습 때 좀 더 파고들어 보기로 하자!

Tistory

[ SAPUI5 ] Rule Builder Control / Decision Table - 3

페이지 컨트롤러 설정 이어 하기 - [ Page.control.js ] handleEditButton: function () { var oEditButton = this.byId("editButton"); var oRuleBuilder = this.byId("ruleBuilder"); var bEdit = (oEditButton.getText() === "Edit"); oRuleBuilder.setEditable(bEdit); oEditButton.setText(bEdit ? "Display" : "Edit"); } 1) oEditButton : 'editButton'을 id로 둔다. 2) oRuleBuilder : 'ruleBuilder'를 id로 둔다. 3) bEdit : 'oEditButton'..

Tistory

[ Diary ] 블로그의 활용도를 어떻게 높혀볼까?

개인 스터디와 자격증 준비를 주요 콘텐츠로 하고 있지만 원래 나는 네이버 블로그에선 일상에 대해 일기를 적었단 말이지... 네이버 블로그도 재밌지만 이제 맛집 리뷰나 일상에 대한 이야기들을 티스토리에 정리해볼까 싶기도 하다. 아무쪼록 모두 파이팅!!

Tistory

[ SAPUI5 ] What is the 'loadJSON()'?

loadJSON() loadJSON() - 제공된 위치에서 검색된 텍스트를 기반으로 JSON 객체를 생성한다. 1) 이 함수 사용 시, 표준 HTTP 요청을 사용해 JSON 지원 서버에서 콘텐츠를 검색할 수 있다. 2) WordPress(JSON API 플로그인 필요) 및 Drupal과 같은 콘텐츠 관리 시스템은 콘텐츠 검색을 위한 JSON / API를 제공한다. - 괄호 안에는 String 문자열로 지정된 위치에서 JSON 데이터를 로드한다. 1) 제공된 위치는 URL 또는 상대 파일 경로여야 한다. 2) 파일 프로토콜과 http/https 프로토콜도 지원된다. 3) file 프로토콜이 있는 정규화 URL은 'file:///' 이다. * 호스트가 localhost인 경우 생략할 수 있으며, 그 결과는 ..

Tistory

[ SAPUI5 ] Rule Builder Control / Decision Table - 2

조건에 해당하는 결괏값을 보여주는 의사결정 테이블 만들기 - [ Page.view.xml ]

Tistory

[ Javascript ] What is the 'httpRequest.readyState == 4'?

readyState readyState - XMLHttpRequest 객체의 현재 상태를 나타낸다. - UNSET(숫자 0) : XMLHttpRequest 객체가 생성된다. - OPENED(숫자 1) : open() 메서드가 성공적으로 실행된다. - HEADERS_RECEIVE(숫자 2) : 모든 요청에 대한 응답이 도착하게 된다. - LOADING(숫자 3) : 요청한 데이터를 처리 중이다. - DONE(숫자 4) : 요청한 데이터의 처리가 완료되어 응답할 준비가 완료되었음을 의미한다. status status - 서버의 문서 상태를 나타낸다. - 200 : 서버에 문서가 존재함을 의미한다. - 404 : 서버에 문서가 존재하지 않음을 의미한다. onreadystatechange onreadystate..

Tistory

[ 정보처리기사 ] 실기 / 2020년 3회 1~10번

리팩토링의 목적에 대한 설명을 작성하시오. 먼저 소프트웨어를 보다 이해하기 쉽고, 수정하기 쉽도록 개선하기 위함이다. 또한 결과의 변경 없이 코드의 구조를 재종하는 것으로 가독성을 높이고, 유지보수를 쉽게하기 위한 목적이다. 그리고 코드의 외부 행위는 바꾸지 않고 내부 구조를 개선시켜 소프트웨어를 보다 이해하기 쉽고, 수정하기 쉽도록 만들기 위해서이다. 다음의 출력 결과를 쓰시오. #include void main() { int c = 0; int i = 0; while(i

Tistory

[ 정보처리기사 ] 실기 / 2020년 3회 11~20번

다음 중 헝가리안 표기법(Hungarian Notation)에 대해서 서술하시오. 헝가리안 표기법이란 식별자 표기 시에 접두어에 자료형을 붙이는 표기법이다. 테스트의 종류 중, 동치 분할 테스트, 경곗값 분석 테스트 등의 종류가 있는 테스트 기법을 쓰시오. 블랙박스 테스트 동치분할 테스트란 프로그램의 입력 데이터를 여러 분류로 나누어 검사하는 것을 말한다. 경계값 분석은 입력값의 경곗값을 중심으로 예외가 발생하는 여부를 검사한다. 원인-결과 그래프 기법은 입력데이터 간의 관계와 출력에 미치는 영향의 분석 그래프를 이용하는 기법이다. 오류 예측 검사는 테스터의 감각이나 경험, 지식을 통해 에러 케이스를 예측하는 것이다. 비교 검사란 테스트 대상과 비교 대상 프로그램에 같은 입력값을 넣어 데이터를 비교하여 ..

Tistory

[ SAPUI5 ] Rule Builder Control / Decision Table - 1

decision table 기본 설명 - Refresh Data Object : 데이터 객체의 속성을 읽고 미리 정의된 결과의 속성을 자동으로 가져온다. - Cut / Copy / Paste 1) Cut : 특정 행을 제거하는 데 사용되며 붙여넣기 옵션을 사용해 decision table의 다른 행에 삽입할 수 있다. 2) Copy : 특정 행을 복제한는 데에 사용되며 붙여넣기 옵션을 사용해 decision table의 다른 행에 삽입할 수 있다. - Hit Policy 1) First Match : rule engine은 조건과 일치하는 첫 번째 항목을 자겨오고 해당 결과가 반환된다. 2) All Match : rule enjine은 조건과 일치하는 모든 항목을 가져와서 결과로 반환한다. - Acc..

Tistory

[ SAPUI5 ] What is the 'getParent'?

getParent getParent - 'getParent'에서 반환되는 부모 요소는 데이터 바인딩, 무효화, 렌더링 등에 사용된다. - Dialog가 내부적으로 숨겨진 VerticalLayout을 사용해 콘텐츠를 저장한다고 가정해보자. Dialog (API parent) \__ VerticalLayout (hidden composite part) \__ Text (API child) - 'Dialog.prototype.addContentAPI'를 호출하여 일부 콘텐츠를 추가하면 다음과 같은 결괏값이 도출된다. oDialog.addContent(oText); console.log(oText.getParent() === oDialog);//false console.log(oText.getParent() i..

Tistory

[ SAPUI5 ] Flexible Column Layout App - Adding a Detail Page

데이터의 상세 정보를 확인하기 위해 해당 정보를 클릭하면 앱 사이즈가 작아지며 상세 페이지로 이동한다. - [ Detail.view.xml ] - [ App.view.xml ] ... 1) 'midColumnPages'를 'FlexibleColumnLayout' 하위 페이지로 추가한다. 2) 'id'는 'detailView'로 지정해두고, [ manifest.json ]에 설정해 두었던 'rootView'로 경로 이동이 가능토록 view 설정 - [ List.view.xml ] ... ... 1) 'press' 이벤트 핸들러를 추가한다. 2) 컨트롤러에서 기능이 구현될 매개로 'press' 형식을 '.onListItemPress'로 지정해둔다. - [ List.controller.js ] sap.ui..

Tistory

[ SAPUI5 ] Flexible Column Layout App - Using Page Layout as a Detail Page

데이터에 대한 상세 정보를 보여주는 화면 출력하기 - ObjectPageLayout 1) 앱이 비즈니스 객체와 관련된 정보를 쉽게 표시할 수 있도록 하는 레이아웃을 제공한다. 2) 버전 1.52부터 컨트롤은 sap.f.DynamicPage에서 사용되는 것과 동일한 동적 헤더를 가질 수 있게 되었다. 3) 이동 경로 네비게이션, 네비게이션 작업, 제목 영역을 탭 및 클릭하거나 사용 가능한 화살표 버튼 선택해 머리글 확장 및 축소와 같은 SAP Fiori 기능의 가용성 확보할 수 있게 된다. 4) sap.uxap.ObjectLayout은 정보를 구조화하는 섹션 및 하위 섹션에 래핑된 선택적 앵커 표시줄 및 블록 콘텐츠를 사용해 보다 구조화된 페이지 콘텐츠 제공이 가능해진다. - [ manifest.jso..

Tistory

[ 정보처리기사 ] 실기 / 2020년 2회 - 1~10번

다음 보기는 네트워크 인프라 서비스 관리 실무와 관련된 사례이다. 괄호 안에 들어갈 가장 적합한 용어를 한글 또는 영문으로 쓰시오. 귀하는 IT 회사의 보안관제실에서 근무하고 있다. 정보시스템 운영 중 자연재해나 시스템 장애 등의 이유로 대고객 서비스가 불가능한 경우가 종종 발생한다. 이를 대비하여 백업 및 복구 솔루션을 도입하고자 한다. 백업 및 복구 솔루션은 ( )와 복구 목표 시점(RPO) 기준을 충족할 수 있는 제품으로 선정해야 한다. ( )는 "비상사태 또는 업무 중단 시점으로부터 업무가 복구되어 다시 정상 가동될 때까지의 시간"을 의미하고 복구 목표 시점(RPO)는 "업무 중단 시 각 업무에 필요한 데이터를 여러 백업 수단을 이용하여 복수할 수 있는 기준점"을 의미한다. RTO(Recovery..

Tistory

[ 정보처리기사 ] 실기 / 2020년 2회 11~20번

리눅스 커널을 기반으로 동작하며 자바의 코클린 언어로 개발된, 모바일 기기에 주로 사용되는 오픈소스 플랫폼인 운영체제는 무엇인지 쓰시오. 안드로이드 다음 주어진 student 테이블의 name 속성에 idx_name을 인덱스 명으로 하는 인덱스를 생성하는 SQL 문을 작성하시오. id name grade 1111 홍길동 1 2222 임꺽정 2 3333 유관순 3 4444 안중근 3 5555 홍범도 4 CREATE INDEX idx_name ON student(name); 다음 괄호 안에 들어갈 프로토콜의 이름을 적으시오. ( )은(는) HTTP 등의 프로토콜을 이용해 XML 기반의 메시지를 교환하는 프로토콜로, Envelope-Header-Body 주요 3요소로 구성된다. ( )은(는) 유사한 기능을 하..

Tistory

[ Diary ] ??? : 돼빠오라는 말을 쓰지 마십시오.

고등학교 때 창작되었던 돼빠오라는 별명. 돼빠오가 뭔지 설명하자면, 우리 동네에 홍빠오라는 중국집이 있었다. 그리고 친하게 지내던 친구와 같은 동네에 살았기에 함께 그 중국집을 가기도 했다. 그 당시 내 친구는 나보다 덩치가 있어서 돼지 + 홍빠오를 붙여 돼빠오가 탄생한 것이다. 그 이후 그 친구는 살을 열심히 뺐고 반대로 나는 살이 열심히 쪘기에 암묵적으로 돼빠오라는 별명을 내가 인계받았다. 돼빠오는 추억이 가득한 별명이다 이 챗쥐피티 나쁜 녀석아!! ㅋㅋㅋㅋㅋ 오늘도 파이팅!!

Tistory

[ SAPUI5 ] Flexible Column Layout App / Using Dynamic Page for the List View

동적 페이지 생성 및 검색을 통해 원하는 데이터 화면에 출력하기 - [ manifest.json ] ... }, "dependencies" : { "minUI5Version": "1.60.0", "libs": { "sap.ui.core": {}, "sap.m": {}, "sap.f": {} } }, ... 1) 의존 요소 중 하나에 'sap.m' 라이브러리를 추가한다. 2) sap.m * 데스크톱 브라우저뿐만 아니라 터치가 가능한 모바일 등에서도 사용할 수 있는 반응현 컨트롤이다. * 기본 UI5 컨트롤 라이브러리이다. - [ index.html ] ... ... - [ Component.js ] sap.ui.define([ 'sap/ui/model/json/JSONModel' ], function(..

Tistory

[ 정보처리기사 ] 실기 / 2020년 1회 - 1~10번

다음 ( ) 안에 들어갈 단어를 쓰시오. ( )은(는) 웹브라우저 간 HTML 문법이 호환되지 않는 문제와 SGML의 복잡함을 해결하기 위해 개발된 다목적 마크업 XML 다음 ( ) 안에 들어갈 단어를 쓰시오. ( )은 속성-값 쌍(attribute-value pairs)으로 이루어진 데이터 오브젝트를 전달하기 위해 사용하는 개방형 표준 포맷이다. AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷이다. 언어 독립형 데이터 포맷으로 다양한 프로그래밍 언어에서 사용되고 있다. JSON 다음은 릴리즈 노트의 구성 항목에 관한 설명이다. 설명하는 항목은 무엇인가? 릴리즈 노트 이름, 소프트웨어 이름, 릴리즈 버전, 릴리즈 날짜, 릴리즈 노트 날짜, 릴리즈 노트 버전 등의 기존 정보가 포함된다. 릴리..

Tistory

[ 정보처리기사 ] 실기 / 2020년 1회 - 11~20번

OSI 7계층 중 다음에서 설명하는 계층은? 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의한다. 단위(PUD)는 '비트'를 사용한다. 물리 계층 1계층은 물리계층(Physical layer)이며, 물리적인 장치의 전기적, 전자적 연결에 대한 명세이다. 이 계층에서는 디지털 데이터를 아날로그적인 전기적 신호로 변환하여 물리적인 전송을 가능케 한다. 또한 주소 개념이 없으며 물리적으로 연결된 노드 간에 신호를 주고 받는다. 2계층은 데이터링크 계층(Data link layer)이다. 인접한 노드 간의 신뢰성 있는 데이터(단위: 프레임) 전송을 제어(Nod-To Delivery)한다. 그리고 네트워크 카드의 MAC(Media Access Contr..

Tistory

[ SAPUI5 ] What is the 'i18n'?

i18n i18n - Internationalization - 각종 언어에 따라 메뉴의 컨텐츠 동적으로 매핑 - i18n 파일은 OData Model 중에 하나임 - OData Model에서 View에 필요한 내용 매핑 1) 브라우저 언어 설정에 따라 언어를 자동으로 매핑 2) multiple parameter 사용해 여러 개의 Text 매핑 * 아래와 같이 중괄호를 이용해 배열을 지정 // i18n appDescription = sample {0} {1} {2} {3} firstLabel = First secoindLabel = Second thirdLabel = Third fourthLabel = Fourth * 'id'를 'oLabel'로 지정 // view * 지정해뒀던 'oLabel'을 'byI..

Tistory

[ Diary ] 일을 시작한 지가 벌써 한 달.

학원이 끝나고 정말 쉼없이 달려가다보니 회사를 다니며 벌써 다섯 번째 주말을 보내고 있다니! 사실 전에 2년 정도 다른 일을 하다 왔다보니 감회가 새롭다는 말보다는 1년도 채 되지 않은 기간 동안 참 많은 일들이 지나갔다. IT에 한 발치 더 가까워 지고 싶다. 그게 말처럼 쉽지 않았다가 티스토리 피드를 보니 나와 같이 다양한 정보를 공유하고 있는 사람들이 많았다! 앞으로 실력 있는 개발자가 되기 위해 다방면에서 유익한 사람이 되고자 노력할 것이다. 파이팅!!!

Tistory

[ SAPUI5 ] Flexible Column Layout App / Creating an Empty Flexible Column Layout

루트 뷰 설정을 통해 화면의 기본 설정을 해둔다. - [ manifesr.json ] ... }, "sap.ui5": { "rootView": { "viewName": "sap.ui.demo.fiori2.view.App", "type": "XML", "async": true, "id": "fcl" }, "dependencies": { "minUI5Version": "1.60.0", "libs": { "sap.ui.core": {}, "sap.f": {} } }, ... } 1) viewName : [ App.view.xml ]을 'rootView'로 설정한다. 2) type : view의 타입은 'XML'을 사용할 것을 입력한다. 3) async * 동기식으로 호출함을 'true'로 설정한다. * 비..

Tistory

[ SAPUI5 ] /OData Worklist App - Creating initial App

워크리스트 앱을 실행해보자. - 샘플을 다운받아 폴더를 실행시키면 이런 오류가 뜬다. - 출력하고자 하는 데이터가 너무 많아서 그런지는 모르겠지만 다음 파트 샘플을 다운받아 봤는데 여전히 안 된다... - Home Page 1) 재고 단위 수를 포함하는 제품 테이블 표시한다. 2) 테이블의 제목은 사용 가능한 항목 수 보여준다. 3) 테이블의 머릿글 도구 모음에 있는 검색 필드 사용하면 이름으로 제품 검색이 가능해진다. 4) 테이블에 있는 각 제품을 클릭하면 제품의 상세 정보 보여주는 페이지로 이동한다. - Data 1) [ mockserver.js ]를 통해 mockserver 구성해 네트워크 연결 없이 코드 실행이 가능하다. 2) mockserver 및 mockdata로 앱 실행하기 위해 브라우저..

Tistory

[ Concept ] What is the 'RESTful API'?

API(Application Programming Interface) API(Application Programming Interface) - 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙 정의 - REST가 클라이언트-서버 상호작용을 최적화하기 때문에 효율적으로 크기 조정 가능 - 무상태는 서버거 과거 클라이언트 요청 정보 유지가 불필요하기 때문에 서버 로드 제거 - 잘 관리된 캐싱은 일부 클라이언트-서버 간의 상오작용을 부분적으로 또는 완전히 제거 - 이로써 통신 병목 현상을 발생시키지 않으므로 확장성 확보하게 됨 REST(Representational State Transfer) REST(Representational State Transfer) - API 작동 방식에 대한 조건을 부과하..

Tistory

[ SAPUI5 ] What is the 'OData'?

OData OData - Entity들의 집합 1) Entity : 전달하고자 하는 정보의기본 정보(타입, 구성 등) 2) Entity를통해 API 호출 시, 어떤 데이터 정보로 API가 구성돼 있는지와 활용하는 밥법들을 구성 가능 - 단순하고 표준적인 방식으로 쿼리 사용 가능 - Restful API 생성 및 사용 가능한 개방형 프토토콜 What is the 'RESTful API'? API(Application Programming Interface) API(Application Programming Interface) - 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙 정의 - REST가 클라이언트-서버 상호작용을 최적화하기 때문에 효율적으 pythonchoboman.tistory.com ..

Tistory

[ Javascript ] What is the 'jQuery'?

jQuery jQuery - 자바스크립트 언어를 간편하게 사용할 수 있도록 단순화시킨 오픈 소스 기반의 자바스크립트 라이브러리 - 문서 객체 모델(DOM)과 이벤트에 관한 처리 손쉽게 구현 가능 - Ajax 응용 프로그램 및 플러그인도 제이쿼리를 활용해 빠르게 개발 가능 - jQuery 사용 시, html 파일에 복사 및 붙여넣기만 하면 자동으로 설치 - SAP 1.58 버전부터는 jQuery를 사용하지 않는다고 한다. OData V2 Mock Server - Calling a function Import 시간 설정을 통해 이미 지나간 스케줄은 화면에서 제외하고 이제 남은 스케줄만 보여주기 - [ metadata.xml ] - [ App.view.xml ] 1) 보여주고자 하는 리스트의 경로 설정 2..

Tistory

[ Javascript ] How to use 'json.stringify()'?

JSON(JavaScript Object Notation) JSON(JavaScript Object Notation) - 데이터를 문자열의 형태로 나타내기 위해 사용 - 네트워크를 통해 서로 다른 시스템들이 데이터를 주고 받을 때 사용 json.parse() JSON.parse() - JSON 문자열을 인자로 받아 결괏값 JavaScript 객체로 변환 1) JSON 문자열을 'aaa'라는 변수에 저장 * JSON 문자열에서는 키(name, age, married, jobs)를 나타낼 때 쌍따옴표 반드시 사용 const aaa = '{ "name" : "derrik", "age" : 30, "married" : false, "jobs" : "Pythonchobo" }'; 2) 'JSON.parse()' ..

Tistory

[ SAPUI5 ] / OData V2 Mock Server - Calling a function Import

시간 설정을 통해 이미 지나간 스케줄은 화면에서 제외하고 이제 남은 스케줄만 보여주기 - [ metadata.xml ] - [ App.view.xml ] 1) 보여주고자 하는 리스트의 경로를 설정한다. 2) '{/FindUpcomingMeetups}'로 수정해 사용하고자 하는 JSON 데이터로 변경한다. - [ mockserver.js ] 1) jQuery 종속성 추가하자. What is the 'jQuery'? jQuery 제이쿼리 - 자바스크립트 언어를 간편하게 사용할 수 있도록 단순화시킨 오픈 소스 기반의 자바스크립트 라이브러리 - 문서 객체 모델(DOM)과 이벤트에 관한 처리 손쉽게 구현 가능 - Ajax pythonchoboman.tistory.com 2) aRequests : 'getR..

Tistory

[ Diary ] 블로그를 점차 체계화하는 중.

처음 티스토리를 시작할 때는 별 생각없이 내가 공부한 걸 아카이빙하는 거에 그쳤다. 그런데 무작정 코드를 복붙하는 수준이었어서 그런지 다음에 다시 봐도 무슨 말인지 모르겠더라! 그래서 조금씩 코드를 하나씩 분해해서 분석해보기도 하고 구체적으로 어떤 의미를 지니는지 기록하기 시작하였다. 원래 네이버 블로그를 하면서 블로그 게시물 작성에는 어려움이 없었지만 내 공부와 연관된 것들을 게시하게 되면서 글 작성에 체계화가 필요하다고 느끼고 있다. 조금씩 더 정돈된 블로그로 성장하고 싶다 ㅎㅎ 카테고리도 조금씩 늘려 다채로운 블로그를 만들 것이다. 파이팅!!

Tistory

[ OData ] OData V2 Mock Server - Creating a Mock Server to Simulate Data

테스트 서버에서 모의 데이터 정보 확인하기 - [ mockServer.html ] 1) mockdata로 테스트 모드에서 앱 실행 2) initMockServer : 애플리케이션 구성요소가 인스턴스화되기 전에 필요한 설정 단계 수행 3) 실제 서비스로 가는 모든 요청을 확인할 수 있고, 앱 시작 시 모의 서버로 로컬에서 처리 가능 4) 모의 서버는 코드의 다른 곳에서 호출할 필요가 없음 * 'sap.ui.require'를 사용해 전역 네임스페이스를 정의하지 않음 * 종속성을 비동기식으로 로드 - [ initMockServer.js ] 1) webapp/localService 폴더에 있는 mockserver.js 파일에 대한 종속성 로드 * 로컬 mockServer 포함돼 있음 2) 응용 프로그램 구성..

Tistory

[ SAPUI5 ] How to use 'attachAfter()'?

attachAfter(sHttpMethod, fnCallback, sEntitySet) attachAfter(sHttpMethod, fnCallback, sEntitySet) shttpMethod string - HTTP Method에 따른 이벤트 종류 fnCallback function - 콜백함수는 request 유형에 따라 매개변수가 있는 이벤트 노출 - oXhr : 요청 객체 - oEvent.getParameters() : 요청에 따라 매개변수 나열 - oFilteredData : response에서 반환될 mockdata 항목 - oEntry : response으로 반환될 mockdata 항목 sEntitySet string - (선택사항) entity 집합 이름 OData V2 Mock Ser..

Tistory

[ SAPUI5 ] / OData V2 Mock Server - Handling Custom URL Parameters

사용자 정의 URL 구현하기 - [ mockserver.js ] 1) fnCustom * oXhr : 'oXhr'을 파라미터로 가지는 'oEvent'로 인스턴스화한다. * 'oXhr'의 값을 가지며, 'first' 문자열을 가지는 oXhr의 url 주소의 위칫값이 '-1'보다 큰 값일 때, 'oFilteredData'를 파라미터로 가지며, 3번 인덱스에서 100개 요소 제거한 결괏값을 가지는 'oEvent' 값을 도출한다. 2) attachAfter : 'GET' 요청 사용, 위에서 설정해둔 'fnCustom' 콜백함수에 연결, mockdata 'Meetups' entity 집합이다. * 실제 XHR 객체와 애플리케이션에 반환할 mockdata 포함한다. How to use 'attachAfter'?..

Tistory

[ SAPUI5 ] Navigation and Routing - last

라우터 일치 여부 확인하기 - [App.controller.js] 1) attachRouteMatched : 이벤트 핸들러에서 이벤트 매개변수과 일치하는 경로의 이름을 경정 및 타임스탬프에 기록 2) sRouteName : 'name'을 파라미터로 두는 'oEvent'로 인슨턴스화 - Log에 설정해 둔 문구가 잘 나와있다!!

Tistory

[ Diary ] 하루가 쏜살같이 지나간다.

오늘 하루도 정신없이 지나갔다. 항상 월요일 때만 되어도 이번주도 느리겠구나 했지만 벌써 내일은 목요일이라니! 흥달쌤의 정보처리기사 실기편을 예약구매했었는데 하루만에 집에 도착하였다 ㅎㅎ 내일부터 교재를 달달달 외울 것이다! 파이팅!!!

Tistory

[ SAPUI5 ] Navigation and Routing - 14

정렬 대화상자의 북마크 설정하기 - [EmployeeOverviewContent.controller.js] 1) showDialog : 딥 링크가 있는 페이지로 이동할 때 대화상자가 직접 열리는지 여부 제어하는 쿼리 매개변수 * showDialog가 '1'로 설정되면 대화상자 'open' 2) '?query' 값이 내장돼 있는 '_oRouterArgs' 배열함수에 'showDialog' 매개변수를 호출 3) '_oRouterArgs' 값을 기준으로 두는 경로를 가지는 'employeeOverview' view 화면에 출력 4) delete * viewSettingsDialog의 'confirm' 및 'cancel' 이벤트 핸들러에서 * 'navTo() 호출하기 전에 'this._oRouterArgs[..

Tistory

[ SAPUI5 ] Navigation and Routing - 15

직원 테이블에서 직원 상세 이력 사항 확인하는 페이지로 이동하기 - [EmployeeOverviewContent.view.xml] 1) 'itemPress' 이벤트 핸들러 등록 2) 항목 선택 및 navigation을 작동시킬 수 있도록 'ColumListItem' 타입을 'Active'로 설정 - [EmployeeOverviewContent.controller.js] 1) oItem : 'listItem' 파라미터를 매개로 하는 'oEvent'로 인스턴스화 2) oCtx : 선택한 항목을 바인딩 컨텍스트에서 읽도록 하는 'oItem'으로 설정 3) employeeId : 'EmployeeID' 속성을 가지는 'oCtx' 값으로 지정 4) ?query : 'Info'로 초기화 5) 직원 테이블에서 각..

Tistory

[ SAPUI5 ] Navigation and Routing - 16

유효하지 않은 해시값이 불러졌을 때 오류 문구 확인하기 - [App.controller.js] 1) Log.setLevel(Log.level.INFO) : 'INFO' 레벨의 Log 사용(?) 2) attachByPassed * oRouter : getRouter() 메서드 사용 * sHash : 'hash'를 파라미터로 갖는 'oEvent'로 인스턴스화 - F12를 눌르고, 옳지 않은 경로에 접근하게 되면 Log에 설정해둔 텍스트를 확인할 수 있다! Next Stage : Navigation and Routing - last SAPUI5 / Navigation and Routing - last 라우터 일치 여부 확인하기 - [App.controller.js] 1) attachRouteMatche..

Tistory

[ SAPUI5 ] Navigation and Routing - 13

테이블의 정렬 상태 변경하기 - [EmployeeOverviewContent.controll.js] 1) oQueryParameter : '?query' 매개변수 값을 저장하는 '_oRouterArgs' 배열함수로 설정 2) _applySorter : 'oQueryParameter' 값에 'sorterField'와 'sortDescending' 매개변수 호출해 정렬 작업 수행 3) _applySearchFilter : '_oRouterArgs["?query"]' 값을 기준으로 원하는 정보 'search' 4) '_oRouterArgs["?query"]'에 'sortField' 매개변수를 호출한 값을 'oSortItem'의 킷값으로 설정 5) '_oRouterArgs["?query"]'에 'sortDe..

Tistory

[ SAPUI5 ] Navigation and Routing - 11

직원의 상세 정보에 대한 미리보기 만들기 - [Home.view.xml] - [Home.controller.js] 1) [Home.view.xml]의 'press'와 연결할 'onNavToEmployeeOverview' 핸들러 구성 2) 'getRouter()'메서드의 'navTo()'를 통해 view 중에 'employeeOverview'로 이동 - [manifest.json] 1) pattern * 경로에서 'overview'는 'employee'보다 앞에 위치해야 함 * '/#/employees/overview' 해시와 일치할 수 있기 때문임 2) name : view 중에 'employeeOverview' 참조 3) target : 배열 표기법으로 'employeeOverviewTop'과 'e..

Tistory

[ Diary ] 스킨을 바꾸었다!

학원을 같이 다니던 한 친구의 티스토리가 너무나도 근사해서 HTML 편집을 직접 다 한 줄 알았다. 왜냐하면 그 친구는 참말로 코딩을 잘 하기 때문이다. 하지만 스킨이 웹상에 있다고 전해들었고 왜 그 생각을 못 했지라는 바보 같은 생각과 함께 출근하자마자 스킨 탐색을 하였다. 너무나도 마음에 든다! 더욱이 코딩 공부에 박차를 가해야겠다. 6월부터 프로젝트를 들어간다고 하니 걱정이 된다! 오늘도 파이팅!

Tistory

[ SAPUI5 ] Navigation and Routing - 12

직원 정보를 검색해 데이터 보여주기 - [manifest.json] 1) ':?query' : 'employeeOverview' 경로에 추가 2) 'searchField'에 입력된 검색어에 대한 URL 매개변수로 검색을 사용하기 위함 - [EmployeeOverviewContent.controller.js] 1) oRouter : 'getRouter()' 메서드 사용 2) _oRouterArgs : 'null' 값으로 지정 3) '_onRouteMatched' 값과 일치하며 'employeeOverCiew'를 라우팅하는 'oRouter'를 override 4) _onRouteMatched * 'null' 값으로 지정해두었던 '_oRouterArgs'를 'arguments' 파라미터와 연결시킨 'oEv..

Tistory

[ SAPUI5 ] Navigation and Routing - 8

직원의 상세 정보에서 transition을 flip으로 설정해 버튼 클릭 시, 화면효과를 보여주며 직원 이력서 보여주기 - [Employee.view.xml] : 직원 세부 정보 view에 직원의 이력서로 넘어가는 링크 추가 - [Employee.controller.js] 1) 'FlipToResume' 링크에 대한 새 경로 employeeResume으로 이동하는 'onShowResume' press 핸들러 추가 2) 'onShowResume' * getBoundContext() : 바인딩된 컨텍스트 반환 * getElementBinding() : 메타데이터 element 반환 * 'employeeResume'으로 'navTo()', 즉 화면이 이동하는 'getRouter()' 메서드 구성 * emp..

Tistory

[ SAPUI5 ] Navigation and Routing - 9

직원 이력 사항에 있는 탭을 배열함수를 이용해 탭 선택 여부를 확인하고 화면에 출력 - [manifest.json] 1) 설정돼 있는 'employees/{employeeId}/resume'은 첫 번째 탭, 즉 [Info] 탭이 항상 선택됨 2) ':?query' : 특정 탭을 선택한 상태에서 페이지를 직접 열고 탭을 북마크 하도록 해줌 * 'webapp/index.html#/employees/3/resume?tab=Projects'처럼 URL이 구성 *':?query'는 선택사항으로 간주되며, 필수사항으로 설정 필요 시, '{?query}'로 설정 - [Resume.view.xml] 1) 'IconTabBar'를 '.onTabSelect'를 선택하도록 설정 2) 'selectedKey'를 view의..

Tistory

[ SAPUI5 ] Navigation and Routing - 10

contents를 포함하지 않는 tab 숨기기 - [Resume.view.xml] 1) 'lazy loading' : 'id'를 이용해 라우팅 구성에서 나중에 처리 가능토록 함 2) 많은 콘텐츠를 포함하거나 백엔드 서비스에 대해 비용이 많이 드는 서비스 호출을 trigger하는 tab에 사용 - [ResumeHobbies.view.xml] / [ResumeNotes.view.xml] - [Resume.controller.js] 1) 'oQuery'에서 선택한 'tab'이 'Hobbies'이거나 'Notes'일 때 2) 해당 경로의 target을 'resumeTab'과 선택한 'oQuery'의 'tab'을 합쳐서 표현 * 'resumeTabHobbies', 'resumeTapNotes'로 표시 - [m..

Tistory

[ SAPUI5 ] Navigation and Routing - 6

직원 리스트 화면에 출력하기 - [Home.view.xml]에서 'id'를 'employeeListBtn'로 하고 'class'를 'sapUiTinyMarginEnd'로 지정하는 버튼 입력 - 'onNavToEmployees' 핸들러에 'employeeList'를 매개로 'getRouter()'의 'navTo()' 메서드 호출해 경로 지정 - [manifest.json] 1) 'sap.ui.demo.nav.view.employee.EmployeeList' view를 통해 직원 리스트 불러오기 2) 'level'을 '2'로 설정해 왼쪽으로 슬라이드되며 화면이 전환되도록 함, 뒤로가기 시에는 오른쪽으로 슬라이드 - [EmployeeList.view.xml] 1) 'List' 안에 [manifest.jso..

Tistory

[ SAPUI5 ] Navigation and Routing - 7

직원 리스트에서 각 직원의 상세 정보 보여주기 - [manifest.json] 1) 직원 정보가 저장돼 있는 데이터 모델에서 각 직원의 entity가 EmployeeID로 식별돼 있음 2) 새로운 'pattern'으로 'employees'에 이어 '{employeeId}' 값을 하위 경로로 설정 - [Employee.view.xml] - 'onInit' 1) 'oRouter' : 'getRouter()' 메서드 사용 2) 'employee'를 경로로 가지는 'getRoute()' 메서드에서 'this._onRouteMatched'와 일치하는 'oRouter' 설정 - '_onRouteMatched' 1) 변수 'oArgs', 'oView' 선언 * oArgs : 'oEvent'에서 'arguments..

Tistory

[ SAPUI5 ] Navigation and Routing - 2

기본 view 만들기 - config 1) 모든 경로 및 대상에 적용되는 전역 라우터 구성 및 기본값이 포함되어 있음 2) sap.ui.core.routing.Router을 기본값으로 하여 routerClass 설정 * 앱에서 view가 있는 위치 정의 * view를 자동으로 로드하고 표시하기 위해 페이지를 표시하는 데에 사용되는 컨트롤 id와 새 페이지가 표시될 대 채워지는 Aggregation도 지정 * 'viewType' : 'XML'로 설정 * 'path' : namespace 'sap.ui.demo.nav'의 view 폴더를 사용해 모든 view 구현 - routes 1) 각 경로에 도달했을 때 탐색할 'patern', 'name', 'target' 정의 2) 'pattern'은 경로와 일치..

Tistory

[ SAPUI5 ] Navigation and Routing - 3

'NotFound' 우회 페이지 구현 - 'bypasssed' 1) 'notFound'로 설정해 라우팅 구성 확장 2) 라우터가 현재 해시와 일치하는 경로가 없는 경우, ,notFound, 대상 표시하도록 지시 3) 우회 section에 'notFound' 대상 추가 및 단순 'notFound' view로 전환되도록 구성 - [NotFound.view.xml] - [NotFound.controller.js] - [i18n.properties] - 야발...... - 이유는 도큐먼트에서 안내되는 코드와 달랐다.. 이런... 됐으니 넘어가자 일단... Next Stage : Navigation and Routing - 4 https://pythonchoboman.tistory.com/102 SAPUI5 ..

Tistory

[ SAPUI5 ] Navigation and Routing - 4

뒤로가기 버튼 구현하기 - [NotFound.view.xml] 1) 'showNavButton'을 'true'로 설정해 뒤로가기 Button을 자동으로 표시 2) 'navButtonPress'를 'onNavBack'로 설정해 실제 뒤로가기 기능 구현 가능케 하기 - [BaseController.js] 1) onNavBack 핸들러를 통해 앱 기록에 이전 해시값이 있는지 확인 2) 브라우저의 기본 History API를 통해 이전 해시로 redirection 3) 변수 'oHistory', 'sPreviousHash' 지정 * oHistory : 'History'를 매개로 인스턴스(객체)화 * sPreviousHash : 'oHistory'의 이전 해시값을 가져오는 'getPreviousHash()' ..

Tistory

[ SAPUI5 ] Navigation and Routing - 5

뒤로가기 버튼을 눌러 Home.view로 되돌아가기 - [Home.view.xml] - [Home.controller.js] 1) onDisplayNotfound 핸들러 기능 설정 2) 'getRouter()' 메서드에서 getTargets() 메서드를 불러와 'display("notFound")' 호출 * 'name'이 'notFound'로 연결된 view는 Hash를 변경하지 않고 라우터를 통해 표시됨 * 'getTargets()' 호출로 'sap.m.routing.Targets' 객체를 가져옴 3) Not Found Button을 누르면 URL을 변경하지 않고 'notFound'가 표시됨 - [Home.controller.js]의 'display("notFound")'에 'fromTarget'을..

Tistory

[ SAPUI5 ] Fiori와 SAPUI5의 차이

Fiori Application Fiori Application - SAPUI5에서 만들어진 여러 가지 App들의 이름 - SAP에서 SAPUI5로 만든 Front-end Framework - SAPUI5를 이용해 시스템의 화면부를 구성할 수 있도록 개발환경 제공 - 모바일, 테블릿, PC에서도 동일하게 작동하도록 설계되어 있음 SAPUI5 SAPUI5 - SAP가 구축한 HTML5 툴킷의 이름 - 웹 화면 부분을 개발할 수 있는 개발도구 - Web 개발이 Server-client 방식으로 개발되는데, 웹클라이언트 개발의 javascript, CSS, HTML5를 기반으로 만든 UI 라이브러리 - Javascript Framework으로 IE, Chrome, Firefox 등 메인 브라우저 지원 ..

Tistory

[ ABAP ] CDS 기초 개념

CDS(Core Data Service) CDS(Core Data Service) - Code to Data 1) 시스템 병목 현상을 감소 2) 계산 속도 향상 3) 한 계층에서 다른 계층으로의 데이터 이동 감축 - Code Push Down 1) 데이터 모델, Union 및 Association과 같은 재사용 필요 시, Core Data Service 사용 2) 애플리케이션 서버 AS ABAP 중앙 데이터베이스에서 의미론적 데이터 모델 정의 및 사용 위한 프레임워크 제공 3) 지정된 데이터 모델은 데이터 정의 언어(DDL) 및 데이터 제어 언어(DCL) 기반으로 함 - Dictionary View 1) TCode : SE11에서 생성 2) 애플리케이션 서버에 상주, 데이터베이스에 사전에 정의된 데이..

Tistory

[ SAPUI5 ] Navigation and Routing - 1

Set up the Initial App SAPUI5 SDK - Demo Kit ui5.sap.com - 우측 상단의 [Download] 클릭해 압축 해제 후 폴더를 저장 - VSCode에서 폴더를 불러온 후, 'npm install'을 통해 'node_modules' 및 'package.json'을 설치 1) npm(Node Package Manager) : 모듈(패키지) 관리(설치, 업데이트, 삭제) 위한 매니저 2) node * 서버 : 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 또는 프로그램 * 자바스크립트 런타임 : 자바스크립트 프로그램을 컴퓨터에서 실행할 수 있게 하는 환경(npm) 3) package.json * 패키지들의 목록을 파일로 정리해 놓고, 목록 파일을 이용해..

Tistory

[ ABAP ] CDS Views(1)

새로운 ABAP Package 생성 - [Name]과 [Description] 입력 - [Sofware Component]와 [Transport Layer] 입력 - [Create a new request]에서 [Request Description] 입력 - 프로젝트 생성 여부 확인 - 프로젝트 목록에서 우클릭 및 [Favoite Packages] - [Add Package] 선택 - 'zsfc' 검색 및 추가 - [Favorite Packages]에 해당 패키지 추가 여부 확인 - 패키지 [ZSFC_DEMO] 우클릭 및 [NEW] - [Other ABAP Repository Object] 선택 - 'table' 검색 및 [Database Table] 선택 - [Name]과 [Description] ..

Tistory

[ Diary ] 힘겨운 한 주이다.

배워야 할 것들과 앞으로 해나가야 할 것들 무수히 많지만서도 이 대가뿌가 아직 쌩쌩한기라?! 아따 힘내보입시다잉?? 드가자~~

Tistory

[ ABAP ] CDS Views(2)

SAP BTP(SAP Business Technology Platform) - 데이터베이스 및 데이터 관리, 통합, 확장 기능을 갖춘 지능형 기업 애플리케이션사전 구축된 - 수백 개의 SAP 및 애플리케이션 통합을 비롯해 클라우드와 하이브리드 환경 모두를 위한 단일 플랫폼으로 통합 - 모바일 및 브라우저 애플리케이션 구축과 개발 제품을 확장하고 통합하기 위한 SAP 플랫폼 서비스 - 개방형 소프트웨어 플랫폼 - SAP Extension Suit와 SAP Integration의 조합을 통해 온프로미스 또는 클라우드에 관계없이 - SAP 및 비 SAP 시스템 확정 가능케 함 ABAP - key client : mandt not null : 고유값이 될 키 설정, mandt 도메인으로 not null ..

Tistory

[ ABAP ] CDS BTP + Eclips + ABAP

BTP 계정으로 Eclips에 ABAP 프로젝트 생성 - [Boosters]에서 [Prepare an Account for ABAP Trial] 선택 - Starting Booster - 실행 완료 - Eclipse에서 [File] - [New] - [Project] 선택 - [ABAP] - [ABAP Cloud Project] 선택 - [SAP BTP ABAP Environment] - [Use Cloud Foundary environment] 선택 - [SAP BTP Cockpit] - [Account Explorer] - [Subaccounts]에서 Region 확인 - 확인했던 Region 선택 및 Email, Password 입력 - 뭐고 왜 안됨????? 꼐속 시도해봐도 안 돼서 다른 방법..

Tistory

[ SAPUI5 ] Git

Visual Studio Code와 git 연동 - https://backlog.com/git-tutorial/kr/intro/intro1_3.html 누구나 쉽게 이해할 수 있는 Git 입문~버전 관리를 완벽하게 이용해보자~ | Backlog 누구나 쉽게 알 수 있는 Git에 입문하신 것을 환영합니다. Git을 사용해 버전 관리를 할 수 있도록 함께 공부해봅시다! backlog.com - [terminal]에 'git version' 입력 및 버전 확인 - [terminal]에 'git init' 입력 및 실행 여부 확인 - github 홈페이지에서 새로운 repository 생성 - [terminal]에 git에 등록한 'name'과 'email' 입력 1) git config --global u..

Tistory

[ SAPUI5 ] BAS + Git + VSCode(1)

VSCode에서 Git push한 것을 BAS에서 clone - BAS에서 git clone을 할 때 password는 2021년 어느 시점부터 비활성화 되어있다. - 따라서 personal access token을 생성해서 password로 사용해야 한다. - git 페이지에서 Settings에 접속 - 메뉴 가장 하단에 있는 [ Developper settings] 선택 - [Personal access tokens]에서 [Tokens(classic)] 선택 및 토큰 생성 - 'git clone (Https 주소)' 한 후에 username 입력 - password에는 생성한 토큰을 복사 및 붙여넣기 - 생성된 프로젝트 확인 - git hub에는 node_module이 생성되지 않음 - [term..

Tistory

[ SAPUI5 ] BAS + Git + VSCode(2)

BAS에서 Git push한 것을 VSCode에서 clone - [hello.view.xml]에 기존의 코드에서 Button 추가 - [hello.controller.js]에 'onAlertHelloButtonPress' 메서드 'function()'을 'MessageBox'로 설정 - 버튼 실행 여부 확인 - [Staged Changes]에 등록한 후, 커밋할 메세지 입력 및 Commit - [push] 진행 - push된 git 업데이트 여부 확인 - VSCode에 접속해 [Pull] 선택 - [hello.view.xml]과 [hello.controller.js]의 pull 결과 확인

Tistory

[ ABAP ] CDS Views

ABAP CDS Views - 핵심 데이터 서비스(CDS) : 데이터베이스 개발자가 응용 프로그램 서비스가 UI 클라이언트에 노출하는 기본(영구) 데이터 모델 생성하는 데 사용 가능한 인프라 - 특징 1) SAP Systems에서 최신 Application 개발을 위한 중용 기술 2) Data Modeling 측면에서 뛰어난 기능 제공 3) SAP HANA Database와 결합할 대 더 좋은 성능 지님 4) 응용프로그램 서비스가 UI Client에 노출하는 Annotation을 사용해 풍부한 Data Model 생성 가능 5) S/4HANA 개발의 중심, SAP Programing Model에서 핵심 기술로 사용 - Code to Data(code pushdown) 1) CDS VIEW에서 논리적으..

Tistory

[ SAPUI5 ] Business Application Studio

'Hello World' 텍스트 실행 확인 - 우클릭 및 [Open With] 클릭 - [Layout Editor Active] 선택 - [Controls]에서 [Label] 검색 및 우측으로 Drag and Drop - [Properties]의 [Text]에 'Hello World' 입 - [i18n.properties]에서 'title'을 'SAP Fiori Cafe'로 수정 - 실행 결과 확인

Tistory

[ SAPUI5 ] Visual Studio Code

Visual Studio Code 환경 설정 - [Terminal] 종류를 [Git Bash]로 선택 - [terminal]에서 'npm version' 입력 및 npm 버전 확인 - yo, mta, @sap/generator-fiori 설치 - [terminal]에 'yo' 입력 및 [@sap/fiori] 선택 - 아래와 같이 입력 및 선택 진행 - 아래 화면 확인 및 자동 생성된 폴더 열기 - [webapp] - [hello.view.xml]의 내용 일부 수정 - [webapp] 우클릭 및 [Preview Application 선 - [start fiori run...] 선택 또는 [terminal]에 'npm run start' 입력해 실행 - [App.view.xml]에 입력한 'Hello W..

Tistory

[ SAPUI5 ] / OData V4

manifest.js - mockserver.js 1) 모의 서버 구현 포함 2) 모의서버는 TripPin 서비스에 대한 특정 유형의 요청을 시뮬레이션 하는 데에만 사용됨 - metadata.xml 1) entity 유형 및 세트 포함한 서비스 메타데이터 포함 2) request 및 response가 가능한 데이터 구조를 정의해놓은 곳 - people.json 1) 애뮬레이트된 OData의 response에 데이터를 추가하기 위해서는 JSON 파일에 맞는 데이터 유형에 대한 entiy 저장 2) 모의 서비스 response에 사용되는 일부 데이터 포함 3) UserName, Age, FisrtName, LastName 값 정의 App.controller.js - hasPendingChanges()..

Tistory

[ SAPUI5 ] / OData V4 - Create and Edit(1)

App.controller.js - 'getCore()' 메서드의 'getMessageManager()' 메서드로 'oMessageManager' 변수 선언 - 변수 'oMessageModel'에서 'getMessageModel()'로 'oMessageModel' 선언 - 'oMessageModel'에서 'bindList'로 oMessageModelBinding' 선언 1) bindList(sPath, oContext?, vSorters?, vFilters?, mParameters?) * sPath를 '/'로 지정해 경로 설정 * oContext를 'undefined'로 지정해 상대경로 없음으로설정 * vSorters를 '[]'로 지정해 분류 기준 없음으로 설정 2) 'technical' 이라는 항목..

Tistory

[ SAPUI5 ] / OData V4 - Create and Edit(2)

App.conteroller.js - onMessageBindingChange 1) 변수 'aContexts'에 'oEvent'의 source의 contexts와 'aMessages', 'false' 초기화해 둔 'bMessageOpen'를 설정하자. 2) 'false'값을 가지는 'bMessageOpen'이거나, aContexts의 문자열의 길이가 아니라면 값을 반환토록 한다. 3) 'oContext'를 파라미터루 두는 객체를 반환하는 'aContexts'를 매핑하는 'aMessages' 값을 설정한다. 4) 'removeMessages'로써 'aMessages'가 불필요하게 쌓이지 않도록 삭제한다. - onResetChanges 1) App.view.xml 'table'의 id 'peopleLis..

Tistory

[ SAPUI5 ] SAP Build Zone, standard edition

인스턴스 생성 - Service MarketPlace에서 SAP Build Zone, standard edition 선택 - Service Plans로 이동해 Create 클릭 - Instance Name 입력 및 Create 클릭 - 자동으로 뜨는 모달창에서 View Instance 클릭 - 인스턴스 생성 확인 인스턴스 생성은 되었으나, security 설정에서부터 진행이 되지 않아, 다른 것을 도전하기로...

Tistory

[Diary ] 오늘은 돼빠오 생일이다.

저녁엔 한우를 먹으러 간다. 아버지가 50만원을 보내주셨기 때문이다. 살은 언제 빼느냐 이말이야~ 배고프다. 다음주부터는 또 자격증 공부도 시작해야한다. 회사 근처에 헬스장을 등록하기로 했다. 한 달에 8만원씩 지원을 해주니까 그냥 매 달마다 등록하는 게 이득이다. 요즘 내 몸이 살려달라고 울부짖는다. ㅠ

Tistory

[ SAPUI5 ] No Data Binding

text 출력 - index.html에 아래 코드 입력 - index.js 생성 및 코드 Text 컨트롤 입력 1) sap/m/Text의 Text 사용 2) text : text 속성 값은 모델의 데이터 값과 관련이 없으므로 바인딩 되지 않음(?) 3) placeAt : index.html의 content에 위치 - model 1) resource(client-side) model * JSON, XML * 클라이언트에 로컬로 저장된 파일 혹은 웹 서버에 요청하여 데이터가 단일 요청됨 * 요청된 모델은 애플리케이션에서 인지됨 * filtering과 sorting 작업이 클라이언트에서 로컬로 수행됨 2) OData model * 애플리케이션이 모델의 데이터를 필요로 할 때마다 서버에 요청해야 함 * 일반..

Tistory

[ SAPUI5 ] / OData with BAS / Additional Annotation

Filter Bar의 어노테이션 정의 - 'SelectFields'에 'category_code' 추가 - Category 추가 여부 확인 ValueList - $Type 1) ValueListParameterInOut : 데이터 필터링을 위한 파라미터에 사용 2) ValueListParameterDisplayOnly : 선택된 데이터 나열만을 위한 파라미터에 사용 3) LocalDataProperty : source entity 속성 4) ValueListProperty : 데이터 요청값 설정, 필터 표시줄과 테이블에 표시되는 속성 - CollectionPath : 데이터 요청하도록 설정된 entity 정의 - 'title' 추가 - ListReport 선택 - 'Table' 클

Tistory

[ SAPUI5 ] / OData with BAS / Extend the Object Page

Details and Overview - FieldGroup에 'description' 추가 - Incident Description 생성 여부 확인 - 새로운 Field Group 추가 - 'Facets'에 'GeneralInformation' 추가 - Generation Information 추가 여부 확인 - Show Page Map 선택 - 수정 버튼 클릭 - Sections의 Custom section 추가 - ProcessingTiomeSection 생성 여부 확인 - 'LineItem'에 'stepStatus' 값 추가

Tistory

[ SAPUI5 ] / OData with BAS / Flexible Column Layout

Layout 설정 변경 - webapp 우클릭 및 show page map 선택 - 우측의 설정에서 Flexible Column Layout으로 이동 1) Standard Layout에서 Flexible Column Layout으로 변경 2) Mid-Expanded 선택 - 아래와 같이 레이아웃 변경 확인

Tistory

[ SAPUI5 ] Accessibility

Overview.view.xml - InvoiceList.view.xml - HelloPanel.view.xml - i18n.properties

Tistory

[ OData ] with BAS / 개발 환경 설정 및 Fiori 생성

Clone from Git - https://github.com/SAP-samples/fiori-elements-incident-management.git npm install - SAP Fiori elements application에 실행에 필요한 npm package repository와 모든 모듈을 설치 npm i @sap/cds-dk -g - Fiori element application를 생성하기 위해 필요한 command line client과 development toolkit 사용 Application Generator - 좌측 상단의 툴바에서 View - Command Palette 클릭 - Application Generator 검색 및 Fiori: Open Applic..

Tistory

[ SAPUI5 ] Content Density

Component.js - getContentDensityClass 1) 데스크톱 및 비터치 장치에 최적화된 컴팩트한 크기와 터치 상호작용에 최적화된 모드 등 다양한 크기 표시 2) 클라이언트의 터치 지원을 위해 Device API를 직접 쿼리 3) 터치 상호작용이 지원되지 않는 경우 CSS 클래스 sapUiSizeCompact를 반환 4) 다른 경우, sapUiSizeCopy를 반환 App.controller.js manifest.json - 'false'를 'true'로 변경

Tistory

[ SAPUI5 ] Custom Controls

ProductRating.js - metadata 1) 데이터 구조 정의를 통해 control API 역할 수행 2) getter, setter 메서드 자동 생성 - renderer 1) control이 view에서 인스턴스화될 때마다 앱의 DOM 트리에 추가될 HTML 구조 정의 2) control 속성 변경될 때마다 호출됨 3) oRM : 문자열 작성 및 HTML 페이지에 속성을 제어하는 데 사용할 수 있는 SAPUI5 렌더링 관리자 - properties 1) value * 사용자가 선택한 값을 보유할 컨트롤 속성값 정의 * Getter, Setter 함수 자동 생성 * 원하는 경우, XML view에서 데이터 모델의 필드에 바인딩 - Aggregations 1) _rating : A sap.m..

Tistory

[ SAPUI5 ] Device Adaption

HelloPanel.view.xml - expandable component.js Detail.view.xml - responsive="true" : - fullScreenOptimized="ture" : 사용하는 장치의 크기에 따라 장치의 화면에서 view에 추가한 데이터가 다르게 표시됨 Detail.controller.js

Tistory

[ SAPUI5 ] Routing and Navigation

manifest.json - config 1) 모든 경로 및 대상에 적용되는 전역 라우터 구성 및 기본값 포함 2) view를 자동으로 로드하고 표시하기 위한 컨트롤 지정 - routes 1) 기본 경로 2) 새 페이지를 표시하는 URL 패턴 세부 정보가 있는 세부 경로 - targets : target에 해당하는 view 로드 및 앱에 표시 component.js Overview.view.xml App.view.xml InvoiceList.controller.js

1 2 3