pythonchoboman의 등록된 링크

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

Tistory

[ Concept ] What is the ERP?

ERP 출처 : https://www.sap.com/korea/products/erp/what-is-erp.html [ HANA ] Oracle에서 S/4 HANA로 전환된 쿼리문 SAP HANA 출처 : https://www.sap.com/korea/products/technology-platform/hana/what-is-sap-hana.html [ Concept ] What is the IMDB? 인메모리 데이터베이스 인메모리 데이터베이스(IMDB : In-Memory DataBase)란 기존에 디스크 혹은 SSD(S pythonchoboman.tistory.com ERP(Enterprise Resource Planning)는 뜻 그대로 전사적 자원 관리이다. 기업 활동을 위해 사용되는 모든 인적/..

Tistory

[ 돼빠오의 먹부림 ] 서울과 한우와 사시미와 서울 스카이

그랜드 인터컨티넨탈 서울 파르나스 그랜드 인터컨티넨탈 서울 파르나스 : 네이버 방문자리뷰 3,011 · 블로그리뷰 6,443 m.place.naver.com 가족 모두가 서울에 올라왔다. 아버지가 최근 BMW 7 시리즈를 사셨는데, 여러 혜택 중 108만 원 상당의 호텔 숙박권이 있어 다 같이 호텔을 이용해보려고 서울로 모였다. 108만 원 값어치를 하는지는 모르겠다 ㅋㅋ 칠백식당 칠백식당 삼성직영점 : 네이버 방문자리뷰 442 · 블로그리뷰 519 m.place.naver.com 그리고 저녁 식사로 먹었던 한우 모듬 정말 정말 고소하고 찰진 맛이었다. 너무 맛있어서 한 판 더 시켜 먹었다. 그리고 함께 먹었던 한우 육사시미 정말 감탄을 자아내는 맛이었다. 얼마나 쫄깃하고 탱탱하던지 행복의 연속이었다..

Tistory

[ Java ] What is the Wrapper Class?

래퍼 클래스 출처 : https://tcpschool.com/java/java_api_wrapper 래퍼 클래스(Wrapper Class)는 프로그램에 따라 기본 타입의 Data를 Object로 취급해야 하는 경우 사용한다. 만약 메서드 인자 값으로 요구되는 타입이 Object일 때, 기본 타입의 Data를 그대로 사용할 수 없기 때문에 Data 타입을 Object로 변환하여 작업을 진행해야 한다. 기본 타입 래퍼 클래스 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean 즉, Wrapper Class는 위 표와 같은 8개의 기본 타입에 해당하는 Data를 Object로 포장해..

Tistory

[ Java ] Long과 long의 차이점

유지보수 미션을 받은 후, 로그를 확인하면서 오류 코드에 "java.lang.long cannot cast to java.math.bigdecimal"이 떴다. 처음에 나는 DB 단에서 속성 자체가 BigInt로 선언돼 있는데 왜 자꾸 String을 Integer로 형 변환하려고 하는지 몰랐다. 알고보니 BigDecimal은 Oracle에서 쓰는 메서드였고, S/4 HANA로 전환할 때에는 long과 같은 데이터 타입을 써야하는 것 같았다. 다행히 부장님의 리드 하에 bigdecimal --> long 타입 변환을 시도하였고, jsp는 화면에 잘 출력되었다. 생각해보니 Java뿐만 아니라, 모든 분야에서 기본이 가장 중요하다고 느끼는 날이었다. Long [ Java ] What is the Wrapper..

Tistory

[ HANA ] S/4 HANA의 In-Memory 방식 작동 원리

In-Memory DataBase 출처 : https://www.sap.com/korea/insights/in-memory-database.html [ Concept ] What is the IMDB? 인메모리 데이터베이스 인메모리 데이터베이스(IMDB : In-Memory DataBase)란 기존에 디스크 혹은 SSD(Solid-State Drive)에 데이터를 적재하는 방식과 달리, 컴퓨터의 메인 메모리로 작동하는 RAM에 데이터를 pythonchoboman.tistory.com 인메모리 데이터베이스는 많은 데이터를 처리하는 애플리케이션 환경에서 트랜잭션, 분석, 시뮬레이션 등의 작업에 적합하다. 뿐만 아니라, 의료기기 모니터링, 실시간 재무 분석, 온라인 뱅킹, 신용카드 판매, 온라인 경매, 신제품..

Tistory

[ Java ] cannot be cast to java.math.bigdecimal

cannot be cast to java.math.big decimal Java를 사용하여 형 변환을 수행하기 위해서 valueOf를 사용한다. 그러나 HashMap이나 Map을 사용해 데이터를 가죠올 때, 데이터 타입을 Cast하는 과정에서 몇 가지 오류가 발생하기도 한다. valueOf 오류 코드 String number = (String) map.get("test"); 수정 코드 String number = String.valueOf(map.get("test")); 타입이 Integer인 데이터를 Map으로 받아올 때에는 String.valueOf() 메서드를 사용하여 Integer를 String으로 형 변환할 수 있다. Integer.parseInt 오류 코드 int number = (Intege..

Tistory

[ 돼빠오의 먹부림 ] 울산과 오리백숙과 오리불고기

약천한방생오리 약천한방생오리 : 네이버 방문자리뷰 244 · 블로그리뷰 50 m.place.naver.com 오리 백숙 어제도 어김없이 찾아온 회식 자리에서 먹은 오리 백숙 족구 대회를 하고 난 후라 다들 맛있게 먹었다. 나는 고관절이 좋지 않아 심판을 보았지만, 구경하는 것도 너무나도 즐거운 시간이었다. 오리 불고기 정신없이 먹느라 오리불고기는 먹지 못했지만 사진이라도 남겨 두어서 다행이다. 오리 백숙을 다 먹고 밥을 말아 먹는 게 정말로 맛있었다! 술도 술술 들어가니 너무 좋았다.

Tistory

[ 돼빠오의 먹부림 ] 울산과 장어와 대게와 통닭, 그리고 뱀술

일품 장어 호계점 일품장어 호계점 : 네이버 방문자리뷰 257 · 블로그리뷰 52 m.place.naver.com 울산 출장 중 평소에는 먹지 못 하는 것들을 접하고 있다. 저번에 먹었던 장어는 한 마리에 6만 원 정도였는데 굉장히 통통하고 쫄깃한 게 술이 술을 부르는 형국이었다. 대게명가 대게명가 : 네이버 방문자리뷰 1,020 · 블로그리뷰 2,076 m.place.naver.com 갑작스레 회식이 잡혔던 날 울산의 정자동까지 차를타고 가서 대게를 쪄 먹고 비벼 먹고 라면까지 해치웠다. 가격대가 비싼 터라 야무지게 먹진 못 하였다. 나폴레옹 나폴레옹 : 네이버 방문자리뷰 320 · 블로그리뷰 36 m.place.naver.com 숙소 앞에 있는 나폴레옹이라는 호프집 우연히 가보았지만 통닭이 기가..

Tistory

[ Concept ] What is the OLAP?

OLAP OLAP(Online Analitical Processing)이란 다차원 분석을 통해 최종 사용자가 대화식으로 정보를 분석하고 의사결정에 활용하는 과정을 의미한다. OLAP은 Data Warehouse, Data Mart나 중앙화된 통합 데이터 저장소의 대용량 데이터를 고속으로 다차원 분석하는 소프트웨어이다. 이와 같은 OLAP은 대규모 Business DB를 구성하고 복잡한 분석을 지원하며, 트랜잭션 시스템에 부정적인 영향을 주지 않고 복잡한 쿼리 수행에 도움을 준다.

Tistory

[ HANA ] Oracle에서 S/4 HANA로 전환된 쿼리문

SAP HANA 출처 : https://www.sap.com/korea/products/technology-platform/hana/what-is-sap-hana.html [ Concept ] What is the IMDB? 인메모리 데이터베이스 인메모리 데이터베이스(IMDB : In-Memory DataBase)란 기존에 디스크 혹은 SSD(Solid-State Drive)에 데이터를 적재하는 방식과 달리, 컴퓨터의 메인 메모리로 작동하는 RAM에 데이터를 pythonchoboman.tistory.com SAP HANA는 Data를 Disk에 보관하는 대신 Memory에 저장하는 Multi-Model Database이다. Column(열) 기반의 IMDB(In-Memory DataBase)를 사용하여 ..

Tistory

[ 돼빠오의 먹부림 ] 울산과 과메기

미성대구탕 미성대구탕 : 네이버 방문자리뷰 62 · 블로그리뷰 8 m.place.naver.com 울산 출장 어언 3개월째... 이제 적응되나 싶다가도 가끔 외롭고 힘들지만 울산에서의 먹부림으로 산해진미를 다 먹어보고 있어 좋은 점도 있다. 어제 먹었던 과메기는 정말 찰지고 먹음직스러웠다. 배추 한 통을 통째로 주다니...! EP Conversion 프로젝트에서 포탈을 업그레이드 하고 있는데, Oracle에서 S/4 HANA로의 마이그레이션을 하며 쿼리를 수정하면서 느낀 점은 DB단에서의 SQL문에 관한 공부도 중요하다고 느끼고 있다. 뭣보다도 ABAP을 공부해봐야 할 거 같은... 오늘도 파이팅!

Tistory

[ Concept ] What is the Stream-Processing?

스트림 처리 스트림 처리(Stream-Processing)는 데이터가 생성되는 즉시 스트리밍 데이터를 연속적으로 실시간 처리하는 것을 의미한다. 스트림 처리는 데이터 크기를 알 수 없으며, 무한하고 연속적일 때 사용되며 데이터를 처리하는 데에 몇 초 또는 몇 밀리 초 정도밖에 안 걸린다. 다시 말해, 스트림 처리를 통해 데이터가 생성되자마자 분석 시스템에 하나씩 데이터가 공급된다. 즉, 스트림 처리에서 데이터 출력 속도는 데이터 입력 속도만큼 빠른 것이다. Apache의 Kafka, Flink, Storm, Samza 등과 같은 플랫폼과 결합하여 더욱 더 빠르게 스트림 처리를 할 수 있다. 스트림 처리에 대한 예를 들자면, 토트넘 경기가 시작되고, 손흥민이 골을 넣었을 때 실시간으로 시청자들의 반응을 여..

Tistory

[ Concept ] What is the RDBMS?

RDBMS RDBMS(Relational DataBase Management System)은 관계형 모델 기반의 DBMS이다. 이와 같은 관계형 DB는 Data가 하나 이상의 Column(열)과 Row(행)의 Table에 저장돼, 데이터 구조 간의 관계가 어떻게 상호작용하며 정의되어 있는지 파악할 수 있는 테이블 간의 논리적 연결을 의미한다 . 즉, RDBMS는 Data를 구성하고 관리 및 연결 등을 보조하는 Spread Sheet의 모음인 것이다. 여기서 Spread Sheet는 Attribute(속성) 역할을 하는 Column과 튜플을 의미하는 Row에 정보를 저장하는 테이블이다. 관계형 데이터베이스의 모든 테이블에는 Row에서 고유 식별이 가능케 하는 Primary Key(기본키)와 Foreign ..

Tistory

[ Concept ] What is the IMDB?

인메모리 데이터베이스 인메모리 데이터베이스(IMDB : In-Memory DataBase)란 기존에 디스크 혹은 SSD(Solid-State Drive)에 데이터를 적재하는 방식과 달리, 컴퓨터의 메인 메모리로 작동하는 RAM에 데이터를 저장하는 방식이다. 컴퓨터의 CPU(중앙 처리 장치)는 주 메모리에 저장된 데이터에만 직접 접속할 수 있으며, 이에 따라 IMDB는 기존 DB에 비해 매우 빠른 속도로 주 메모리의 데이터를 읽을 수 있는 것이다. [ Concept ] What is the Stream-Processing? 스트림 처리 스트림 처리(Stream-Processing)는 데이터가 생성되는 즉시 스트리밍 데이터를 연속적으로 실시간 처리하는 것을 의미한다. 스트림 처리는 데이터 크기를 알 수 없으..

Tistory

[ CAP ] Node.js - Facade Pattern - @sap/cds

Facade Pattern Facade 패턴은 low level Interface들을 하나의 high level Interface로 통합시켜 주는 패턴이다. 클라이언트 객체가 여러 low level의 Interface 동작을 통제하고자 한다면, 여러 개의 low level의 Interface 메서드들을 하나 하나 호출해야 하는데, Facade 패턴을 사용하게 되면 high level의 Interface 메서드 호출만으로한 번에 할 수 있게 된다. 따라서 Facade 패턴에서는 high level의 Interface를 low level의 Interface로부터 통합하여 'Unified Interface'라고 부른다. @sap/cds SAP에서는 '@sap/cds'를 사용하면 여러 가지 메서드들의 재사용을 ..

Tistory

[ Diary ] 첫 프로젝트 시작.

회사에 입사한지 어언 7개월차이다. 이것저것 스터디를 하며 SAP CAP이 과연 무엇인지 연구해 왔다. SAP CAP은 현 시점에서 유능한 개발자가 거의 없다싶히 한 것 같다. 최근에는 우리 팀이 대기업과 계약을 맺었다. 나는 약 한 달 동안 CAP에 관한 실습 교육 자료를 만들었다. 함께 교육에 참여하셨던 이사님이 모든 교육을 진행하실 줄 알았으나, 내가 만든 실습 자료는 내가 진행하는 기회를 가지게 되었었다. 2주간 진행한 교육을 모두 마치고 나니, 하루는 긴데 2주는 그냥 지나가더라. 이제 내년 2월까지 개발 시작이다. 파이팅 해보자!

Tistory

[ Concept ] What is the Batch-Processing?

배치 처리 배치 처리(Batch-Processing)는 특정 시간 범위 내에서 대량의 데이터를 일괄적으로 처리하는 작업을 의미한다. 이때 배치 처리를 하기 위해서는 데이터의 크기가 계산되어 있는, 즉 유한한 데이터일 경우에 사용할 수 있다. 계속해서 유효 데이터를 수집하고, 유사한 데이터가 있을 시에는 그룹화 및 일괄 처리를 하게 된다. 배치 처리는 분석 시스템에 데이터 처리 결과를 즉각적으로 제공하지 않으므로 실시간으로 데이터 처리 결과나 속도를 필요로 하는 프로젝트에는 적합하지 않다. 반면, DB 또는 파일 시스템과 같은 데이터를 로드하기 위한 스토리지를 사용하게 되고, 오래된 메인 프레임과 서버를 포함하는 클라우드 데이터 마이그레이션 과정 중에 배치 처리를 하게 된다. 배치 처리에 관한 예를 들자면..

Tistory

[ CAP ] CDS UI로 여러 가지 Chart 만들기

schema.cds entity ChartDataEntities entity ChartDataEntities : cuid { parent : Association to one RootEntities; criticality : Association to one Criticality; integerValue : Integer; integerValueWithUoM : Integer; uom : UnitOfMeasure; forecastValue : Integer; targetValue : Integer default 30; dimensions : Integer; areaChartToleranceUpperBoundValue : Integer default 90; areaChartToleranceLowerBoun..

Tistory

[ CAP ] @Communication.Contact와 @UI.IsImageURL 사용해 UI 구성하기

이번주는 샘플을 분석했던 것을 토대로 내가 생성해 놓은 CAP 프로젝트에 응용해볼 것이다. 거의 따라하는 거라 어렵지 않겠지만, 무작정 베끼는 거보다는 어떤 기능을 구현할 때 새로운 조건을 추가해 보는 등의 시도도 해보려고 한다. 사용할 테이블 속성 선언하기 data-model.cds Contacts entity Contacts : cuid { name : String; phone : String; state : String; country : String; street : String; postCode : String; addressLabel : String; imageUrl : String @UI.IsImageURL; } 우선 가장 먼저 Contacts 개체를 생성하여 화면에서 보여주고 싶은 데이터 ..

Tistory

[ Node.js ] Node __dirname과 __filename

근래에는 SAPUI5로 view를 제작하고, mock 서버에 로컬에 있는 파일을 업로드하는 것과 CAP Node.js로 csv 파일에 임의로 지정해둔 데이터를 활용해 CDS view를 출력하는 것까지 진행하였었다. 그 이후에는 두 종류의 view를 connect하여 CDS view에서 Identification의 Action 파트를 이용해 버튼을 구현 및 SAPUI5 view 페이지를 invoke하는 것을 수없이 시도했으나, 미흡한 실력인지는 몰라도 계속헤서 실패하였다. 다만, 이 과정에서 javascript로 CDS view에서 융통적으로 활용할 수 있도록 Action의 조건 또는 기능을 다양하게 구현할 수 있다는 점을 깨달았다. 당연히 커스터마이징 하는 데에는 더 많은 공부가 필요하겠지만, 하나 하나..

Tistory

[ CAP ] CDS와 SAPUI5를 이용한 파일 업로드 - .cds / .js

.cds 파일을 이용하면 ABAP을 대체하여 데이터를 적재 및 활용할 수 있다. UI 자체도 제작되어 있기 때문에 자기가 원하는 데이터를 화면에 보여주는 것은 어렵지 않다. 하지만 모든 프로젝트를 정형화되어 있는 모델로 구축할 수는 없다. 왜냐하면 고객이 원하는 커스텀은 각기 다르기 때문이다! 따라서 다양한 수요를 충족시켜 주기 위해서는 UI5를 이용해 커스터마이징하는 방법에 대해 익혀두는 것이 좋을 것이다. 이번에 하고 있는 것은 파일을 로컬 서버에 저장해보고 이를 다운로드해 다시 파일을 로컬에 가져오는 과정을 다루고 있다. MVC 패턴과 CDS, SAPUI5 등을 조합해 파일 업로드 화면을 계속해서 분석해 보자! CDS와 SAPUI5를 이용한 파일 업로드 data-model.cds entity Fil..

Tistory

[ CAP ] 기본 entity 변경사항이 반영된 entity 데이터 값 보여주기

service.cds service service1 sap.fe.featureShowcase 네임스페이스를 persistence로 초기화하고, 이 경로에 있는 schema.cds를 사용 한다. schema.cds에는 앞으로 사용할 테이블의 Attribute와 Tuple의 값들을 나열해 놓은 entity들이 선언되어 있다. 이제 다양한 공간에서 여러 가지의 action을 사용하기 위한 service를 service1로 사용하게끔 입력해 준다. @Capabilities.SortRestrictions.NonSortableProperties 어노테이션을 쓰게 되면, 배열 값에 입력한 값을 제외하고 데이터 값들이 정렬된다. 즉, 생성 및 수정에 관한 정보는 데이터가 정렬될 때 정렬 기준에서 비활성화됨으로써 해당 ..

Tistory

[ CAP ] objcect 페이지의 default 값 대입해 UI 비동기 갱신하기

schema.cds entity Contacts entity Contacts : cuid { name : String; phone : String; building : String; country : Country; street : String; city : String; postCode : String; addressLabel : String; photoUrl : String; } schema.cds에 aspect rootBasis에 여러 속성을 설정해두면 다른 entity에서 재사용할 수 있게 된다. contact의 경우에는 entity Contacts와 일대일 연결을 시켜주어 Contacts가 가지는 uuid에 연결된 유니크한 속성값들이 조인된다. 여기서 특이한 점 중 하나는 addressLabel..

Tistory

[ 정보처리기사 ] 버전 관리 도구

버전 관리 도구 CVS CVS는 중앙에 위치한 Repository에 파일을 저장하고, 인가된 모든 사용자가 파일에 접근할 수 있도록 하며 파일의 히스토리를 보존하기 때문에 과거 이력을 확인할 수 있다. Commit 중 오류가 발생하면 롤백되지 않고, 다른 개발자가 작업 중인 파일에 덮어쓰기가 방지된다. 그러나 상대적으로 속도가 느린 편이며, 등록된 파일이나 디렉터리의 변동이 불편하다는 단점이 있다. SVN SVN은 CVS의 단점을 보완하기 위 해 만들어졌다. 최초 1회에 한해 파일 원본을 저장하고, 그 이후에는 실제 파일이 아닌 원본과 차이점을 저장하는 방식이다. 언제든지 원하는 시점으로 복구가 가능하며, Commit 실패 시 Rollback이 가능하다. Trunk, Branches, Tags의 폴더로 ..

Tistory

[ 정보처리기사 ] 빌드 자동화 도구

빌드 자동화 도구 Make Make는 유닉스 계열 운영체제에서 주로 사용되는 프로그램 빌드 도구이다. 파일 간의 종속 관계를 파악해 기술 파일(Makefile)에 적힌 내용을 컴파일러가 순차적으로 실행하게 한다. Ant Ant는 Java 기반의 빌드 도구로 다른 빌드 도구보다 역사가 오래 되었다. 개발자가 원하는 형태로 개발을 할 수 있는 유연성을 갖추고 있으며, XML 기반의 빌드스크립트로 개발을 진행한다. 그러나 스크립트의 재사용이 어려우며 Remote Repository를 가져올 수 없다는 단점을 지니고 있다. Maven Maven은 프로젝트에 필요한 모든 의존성(Dependency)을 리스트 형태로 Maven에게 알려 관리할수 있도록 돕는 방식이다. 필요한 라이브러리를 특정 파일(pom.xml)에..

Tistory

[ 정보처리기사 ] 객체 지향 분석 모델

객체 지향 분석 모델 객체 지향 분석이란 사용자의 요구사항을 분석하여 요구된 문제와 관련된 모든 클래스, 이와 연관된 속성과 연산 그들 간의 관계 등을 정의해 모델링하는 작업이다. 객체지향 분석 방법론 Rumbaugh 럼바우 방법은 분석 활동을 객체 / 동적 / 기능 모델로 나누어 수행하는 방식이다. 객체 모델링(Object Modeling)은 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정해 객체 다이어그램으로 표현한 것이다. 이는 객/동/기 중 가장 먼저 선행돼야 한다. 동적 모델링(Dynamic Modeling)은 상태 다디어그램을 이용해 시간의 흐름에 따라 제어 흐름 동작 순서 등 동적 행위를표현한다. 기능 모델링(Functional Modeling)은 자료 흐름..

Tistory

[ CAP ] CDS와 SAPUI5를 이용한 파일 업로드(1) - view / controller

CDS와 SAPUI5를 이용한 파일 업로드(1) App.view.xml { this._uploadContent(item, id); }) .catch((err) => { console.log(err); }) } onAfterItemAdded 메서드는 파일 업로드 UI 컨트롤에서 새로운 파일 요소가 추가될 때 호출되는 이벤트 핸들러이다. _createEntity 메서드를 호출해 새로운 entity를 생성하고, 해당 entity ID를 가져온다. 그리고 _uploadContent 메서드를 호출하여 파일을 업로드 한다. 이 메서드에서는 Promise 객체를 사용해 비동기적으로 작업을 수행하게 된다. 즉 새로운 entity 생성 및 파일 업로드가 성공하면 _uploadContent 메서드가 호출되고, 실패하면 c..

Tistory

[ 정보처리기사 ] 소프트웨어 아키텍처

소프트웨어 아키텍처 품질 속성 정확성(Correctness)은 사용자가 요구한 기능을 정확히 수행해야함을 의미한다. 신뢰성(Reliability)은 요구한 기능이 오차나 오류가 없이 동작해야한다는 것을 말한다. 효율성(Efficiency)은 기능이 수행되면서 자원(CPU, Memory)을 적절히 사용해야함을 말한다. 무결성(Integrity)이란 자료는 인가된 사용자만 변경할 수 있도록 한다는 것을 의미한다. 사용 용이성(Usability)은 쉽게 배우고 사용할 수 있는 것이다. 유지보수성(Maintainability)은 오류 수정 및 변경이 용이해야함을 말한다. 유연성(Flexibility)은 새로운 요구사항을 쉽게 적용할 수 있는 것을 의미한다. 시험 용이성(Testability)이란 테스트를 하는 ..

Tistory

[ CAP ] service 실행 기본 이해하기(1)

저번주에는 기존에 학습하였던 것들을 기반으로 좀더 개념에 대한 이해도를 확장시키고자 다양한 개체들을 만들어 여러 속성들 간의 상관관계(Association) 및 의존관계(Composition)들을 연결시켜 보았다. 그렇다면 이제는 스터디 중 구현되지 않았던 기능들에 대해 다시 시도하고, 더 더나아가 형성된 데이터들 간의 관계들을 자바스크립트를 이용해 다양한 액션 기능들에 대해 알아가보고자 한다. Where to Implement Services? .cds / .js Service를 실행하기 위해서는 생성해두었던 .cds 파일과 동일한이름의 .js 파이을 배치하면 된다. 예를 들어, /lib 또는 ./handlers로 배치하여 .cds와 .js 파일을 구분할수 있다. @sap/cds 위와 같이, Servi..

Tistory

[ 정보처리기사 ] 개발 비용 산정

개발 비용 산정 하향식 산정 기법(Top-Down) 전문가 기법 전문가 기법은 조직 내 경험이 있는 전문가에게 비용 산정을 의뢰해 산정하는 방식이다. 델파이 기법 델파이 기법을 통해 어느한 전문가의 선입견이나 사적인 견해에서 발현하는 문제점을 보완하기 위해 여러 명의 전문가의 의견을 종합해 판단한다. 상향식 산정 기법(Bottom-Up) LOC(원시코드 라인수) 기법 LOC 기법은 각 기능의 원시 코드 라인 수의 비관치(가장 많은 라인수), 낙관치(가장 적은 라인수), 중간치(기대치와 평균 라인수)를 측정해 예측치를 구함으로써 비용을 산정하는 방식이다. 추정 LOC = ( 낙관치 + ( 4 * 중간치 ) + 비관치 ) / 6 M/M 기법 M/M 기법은 소프트웨어 개발 생명주기 각 단계별로 적용시켜 모든 ..

Tistory

[ 정보처리기사 ] 요구사항 분석 기법

요구사항 분석 기법 요구사항 분석 기법에서 요구사항 분류(Requirement Classification) 단계에서는 요구사항이 소프트웨어에 미치는 영향의 범위를 파악하고 생명주기 동안 변경이 발생하는 지에 대해 확인한다. 개념 모델링(Conceptual Modeling) 단계에서 요구사항을 더 쉽게 이해할 수 있도록 UML이나 ERD를 활용함으로써 단순화해 개념적으로 표현하게 된다. 요구사항 할당(Requirement Allocation)에서는 요구사항을 만족시키기 위해 식별된 구성요소들이 어떻게 상호작용하는지 분석하는 과정에서 추가 요구사항을 발견한다. 요구사항 협상(Requirement Negotiation)을 통해 요구사항이 서로 충돌되는 경우 우선순위를 부여해 문제를 해결하고자 한다. 정형 분석..

Tistory

[ CAP ] Annotating Media Elements

Annotating Media Elements @Core.MediaType element에 diret로 혹은 redirect로 미디어 데이터가 포함되어 있음을 나타낸다. MIME 유형이 포함된 문자열이거나, MIME 유형이 포함된 경로가 있다. @Core.IsMediaType element에 MIME 유형이 포함되어 있으며, @Core.MediaType이 이 element를 참조할 수 있다. @Core.IsURL @Core.MediaType element에 미디어 데이터를 가리키는 URL이 포함되어 있다. @Core.ContentDisposition.Filename element가 로컬에 다운로드 및 저장되는 첨부파일로 표시됨을 나타낸다. 이 annotation의 값은 파일의 이름을 포함하는 요소에 대한..

Tistory

[ CAP ] Views and Projections

Views and Projections The as select from Variant entity Bbao1 as SELECT from Doe; entity Bbao2 as SELECT from Employees { * }; entity Bbao3 as SELECT from Employees LEFT JOIN Doe on Employees.ID = Doe.ID { bbao, doe as doebbao, sum(coding) as diary } where exists ( SELECT 1 as anyXY from SomeOtheEntity as soe where soe.x = y ) group by bbao, doe order by diary asc; as select from을 사용함으로써 관계형 데이터..

Tistory

[ CAP ] Class cds.Service - Handler Registration API(1)

Class cds.Service Handler Registration API srv.on(event, path?, handler) → this srv.on로 등록되어 있는 Handlers는 순서대로 실행되며, 각 Handler는 srv.prepend를 함께 등록하여 사용자 지정대로 순서를 끝내는 기능을 사용할 수 있다. 만약, 일반적인 Handler 기능을 사용하기 위해서는 사용자정의 Handler에서 next를 호출하면 된다. event 단일 event의 이름또는 이러한 여러 evnet의 배열 path entity CSN 개체, 노출된 entity 이름, 경로 또는 여러 항목의 배열 handler handler 함수 // Direct request | GET /Products srv.on('READ',..

Tistory

[ CAP ] Temporal Data 적용시키기

저번주 공부를 하면서 느꼈던 점은 기본적인 기능 하나를 구현하는 것에서 성취감을 느끼기도 했지만, 너무 깊게만 파고들진 않았나 싶기도 하였다. 또 반면에 그렇다고 과연 내가 깊게 파고들었다고 생각했던 개념들을 다 파악하고 있던 것도 아니었기에 성취감보다도 자괴감과 함께 자신감이 떨어지는 시간이기도 했다. 하지만 여기서 포기할소냐! 좀 더 체계적이고 유의미한 학습을 진행해보자! Temporal Data [ CAP ] Temporal Database Temporal Database Temporal Database는 시간 관련 Instance Data, 즉 과거, 현재, 미래와 관련된 Data 정보를 저장한다. Valid Time(유효 시간)은 현실에서 어떠한 사실이 True인 기간이다. Trasaction ..

Tistory

[ CAP ] CDS를 Fiori UI로 표현하기

이번에는 내가 만든 CDS의 데이터 값들을 화면에 표현해보자! 지금까지는 entity 간의 관계와 entity에 선언돼 있는 변수들의 Attribute, 이에 관한 데이터 정보를 담고 있는 CSV 파일 등이 어떤 기능을 하고 있는지 간략히 알아보았다. 그렇다면 이제는 이 데이터 정보를 내가 볼 수 있는 것이 중요하다고 하겠다. 조금 많이 헤맸지만 의외로 기본적인 UI로 표현하는 것은 어렵지 않았다! Fiori UI CDS 생성 입력해두었던 데이터 값들을 불러오기 위한 cds를 app 폴더 바로 아래에 하나 생성한다. annotate UI using { com.sap.shoppingmall as my } from '../db/schema'; annotate my.Clothes with @( UI: { Se..

Tistory

4월은 출근, 자격증, 결혼식, 회식, 복싱, 각종 모임...

요즘은 눈코 뜰 새 없이 바쁜 거 같다. 뭘 대단한 걸하고 다니는 것도 아니지만, 번개파인 나에게 결혼식이랴, 군대 선임 연락이랴, 학원 동기들 모임까지... 매주 주말 혹은 금요일에 4월은 죄다 약속이다...! 게다가 평일과 남는 시간은 자격증과 회사일을 스터디하기에... 여자친구에게 굉장히 미안한 달이 될 거 같다. 복싱도 열심히 하면서 체중이 줄고있다! 이번주도 모두 파이팅!!

Tistory

[ CAP ] SQL에 CDS Mapping하기

CDS definitions namespace foo.bar; context Car { entity Wheel { diameter : Decimal } } CDS의 경우, 위와같이 namespace로 경로를 지정하고 context 내에 Wheel이라는개체의 속성을 선언할 수 있다. SQL DDL(Data Definition Language) CREATE TABLE foo_bar_Car_Whell ( diameter Decimal ) 반면, SQL에서는 Unscored, 즉 bottom bar로 간편하게 정의내릴 수 있다.

Tistory

[ CAP ] Database 제약

foreign key 생성과 Association For Managed To-One Associations CDS Association 모델링 entity Books { key ID : Integer; ... author : Association to Authors; } entity Authors { key ID : Integer .... } CDS에서는 위와 같이 외래키를 만들어서 서로 다른 개체를 연결(Association)할 수 있다. 개체 Books에서 기본키로 ID를 정수형 변수로 지정한다. author이라는 객체는 개체 Authors와 Association으로 연결시킨다. 그리고 개체 Authors에서 개체 Books의 기본키를 외래키로 가져올 수 있도록 ID의 데이터 타입을 일치시킨다. Da..

Tistory

[ CAP ] Temporal Database

Temporal Database Temporal Database는 시간 관련 Instance Data, 즉 과거, 현재, 미래와 관련된 Data 정보를 저장한다. Valid Time(유효 시간)은 현실에서 어떠한 사실이 True인 기간이다. Trasaction Time(처리 시간)은 Database에 저장된 사실이 알려진 기간이다. Decision Time(결정 시간)은 Database에 저장된 어떠한 사실이 유효하다고 판단되는 기간이다. Uni-Temporal(단일 시간) Uni-Temporal Database에는 유효 범위 또는 시스템 시간 범위 중 하나의 시간 축이 있다. Bi-Temporal(이중 시간) Bi-Temporal Database에는 두 개의 시간 축이 존재한다. 특징 Temporal ..

Tistory

[ Concept ] what is the 'GUI'?

GUI(Graphic User Interface) [ Concept ] what is the 'CLI'? CLI(Comman-Line Interface) CLI는 사용자와 컴퓨터가 상호작용하는 방식이다. 즉, 사용자는 문자열을 통해 컴퓨테에 명령하고, 컴퓨터 또한 문자열로 출력함으로써 응답하는 것을 의미한다. CLI 장점 GUI pythonchoboman.tistory.com GUI란 사용자가 컴퓨터와 정보를 쉽게 교환하고 상호작용 하기 위해 아이콘 등과 같은 그래픽 요소를 활용한 사용자 인터페이스이다. GUI는 사용자가 커맨드 라인(명령행)을 키보드 입력뿐만 아니라, 마우스 등의 위치 지정 도구를 사용해 도형의 형태로 화면에 표시되는 아이콘을 지정한다. 또한 메뉴 항목 목록 중에서 메뉴를 선택함으로써 ..

Tistory

[ CAP ] Databases 정보 추가

이번 파트는 이전의 Authors와 Books에 관한 데이터베이스를 생성하였다면, 이제는 Books의 설명과 장르를 추가할 것이다. 또한 해당 데이터의 정보를 임의의 GUI로 화면에 출력하는 것이 아니라, Vue.js를 활용해 구현해보자. CSV 생성하기 기존에 입력해두었던 것에서 몇 가지를 더 추가해 입력해준다. Books도 마찬가지로 schema.cds에 작성해두었던 Books의 객체를 추가한다. 이전과 같이 sap.capire.bookshop-Genres.csv 파일을 생성한다. 여기서 Books csv에 입력해두었던 ID는 당연히 책의 내용을 서술하는 Books.texts csv의 ID와 일치하도록 작성한다. Genres csv와 schema.cds를 보면 객체가 어떻게 JOIN 되고 있는지 명확..

Tistory

[ CAP ] CSV 파일 위치와 배열 사용

CSV CSV 파일의 위치 CSV 파일의 위치는 CDS Model 파일의 위치에 따라 결정된다. 즉, db/data 또는 db/csv를 포함해 모든 csv나 data 하위 폴더에 정의할 수 있다. 해당 entity가 컴파일된 Model에 포함된 경우에는 초기 데이터만 가져온다. 이는 재사용 Module의 CSV 파일도포함된다. cds Build는 이러한 파일을 Application 배포 폴더에 복사한다. CSV 파일 및 해당 hdbtabledata 파일용 db/src/** 폴더와 같은 파일은 기본 SAP HANA 아티팩트로 취급된 채로 배포된다. 각 파일에는 하나의 entity에 대한 Data가 포함되어 있다. 파일 이름은 다음과 같이 생성한다. namespace-entity.nestedEntity.cs..

Tistory

[ CAP ] What is the 'CSV'?

CSV(Comma Separated Values) CSV 개념 CSV란, 표 형태의 데이터를 저장하는 파일 형식이다. 하나의 CSV 파일은 하나의 독립된 2차원 데이터를 나타낸다. 각 줄은 하나의 행(row)에 해당하고, 각 열(column) 사이에는 쉼표(,)를 넣어 구분하며, 이때 모든 행은 같은 개수의 열을가져야 한다. 줄 바꿈 문자라는 라인 피드(Lf) 또는 캐리지 리턴-라인 피드(CRLF)를 사용한다. CSV 예시 이름 생년 월 일 국어 점수 영어점수 수학 점수 Java 2001 2 1 99 88 77 Node 2003 8 17 100 90 80 이름,생년,월,일,국어 점수,영어 점수,수학 점수 Java,2001,2,1,99,88,77 Node,2003,8,17,100,90,80 표에 나와 있는..

Tistory

[ CAP ] Databases 생성하기

어제는 AWS 100만 원 과금 이슈가 있었기에 그거를 해결한다고 CAP 학습을 진행하지 못 하였다. 다시 CAP 스터디로 돌아와서, 오늘은 Getting Started의 Using Databases 파트부터 시작한다. 이전 학습에서는 cds 파일을 을 만들어 임의로 구성돼 있는 화면을 출력하였고, 생성한 cds에 접속해 해당 cds 정보를 확인할 수 있었다. 이제는 이 cds에 관한 Database를 구성하여 볼 것이다! Databases 생성하기 CSV [ CAP ] What is the 'CSV'? CSV(Comma Separated Values) CSV 개념 CSV란, 표 형태의 데이터를 저장하는 파일 형식이다. 하나의 CSV 파일은 하나의 독립된 2차원 데이터를 나타낸다. 각 줄은 하나의 행(r..

Tistory

[ Concept ] what is the 'CLI'?

CLI(Comman-Line Interface) CLI는 사용자와 컴퓨터가 상호작용하는 방식이다. 즉, 사용자는 문자열을 통해 컴퓨테에 명령하고, 컴퓨터 또한 문자열로 출력함으로써 응답하는 것을 의미한다. CLI 장점 [ Concept ] what is the 'GUI'? GUI(Graphic User Interface) [ Concept ] what is the 'CLI'? CLI(Comman-Line Interface) CLI는 사용자와 컴퓨터가 상호작용하는 방식이다. 즉, 사용자는 문자열을 통해 컴퓨테에 명령하고, 컴퓨터 또한 문자열로 출력함 pythonchoboman.tistory.com GUI를 대체할 수 있다는 장점이 있다. CLI는 원격으로 작업할 때 웬만한 네트워크 환경에서도 안정적으로 작..

Tistory

[ 정보처리기사 ] 고립화 수준

고립화 수준 Read Uncommited Read Uncommited는 한 트랜잭션에서 연산(갱신) 중인 데이터를 다른 트랜잭션이 읽는 것을 허용하는 것을 말한다. 반면, 연산(갱신) 중인 데이터에 대한 연산은 불허된다. Read Commited Read Commited는 한 트랜잭션에서 연산(갱신)을 수행하고 있을 때, 연산이 완료될 때까지 연산 대상 데이터에 대한 읽기를 제한하는 것이다. 즉, 연산이 완료되어 데이터가 커밋되었을 때 다른 트랜잭션이 읽는 것을 허용한다는 것이다. Repeatable Read Reapeatable Read는 선행 트랜잭션이 특정 데이터를 읽을 때, 트랜잭션 종료 시까지 해당 데이터에 대한 갱신 및 삭제를 제한하는 것을 말한다. Serializable Read Serial..

Tistory

AWS...

오늘 아침 갑자기 AWS에 등록해 놓은 신용카드에서 거금이 결제되었다. 와 뭔 일인가 했네... AWS에 문의하여 겨우겨우 환불 받았다... 환불은 1회만 가능한 거 같다. 오늘 도와준 스테파니 고마워! 환불 과정이 궁금하신 분은 말씀 주셔요...

Tistory

[ 정보처리기사 ] 개발 비용 산정

개발 비용 산정 개발 비용 산정이란, 개발에 소요되는 인원, 자원, 기간 등으로 소프트웨어의 규모를 파악하여 필요한 비용을 산정하는 것이다. 하향식 산정 기법(Top-Down) 전문가 기법 전문가 기법은 조직 내 경험이 있는 전문가에게 비용 산정을 의뢰하여 산정하는 기법이다. 델파이 기법 델파이 기법은 여러 전문가의 의견을 종합하여 판단하는 기법이다. 즉, 특정 전문가의 주관적인 편견을 보완하기 위해 여러 명의 전문가로 구성하는 것이다. 상향식 산정 기법 LOC(원시코드 라인수) 기법 LOC 기법은 각 기능의 원시 코드 라인 수의 비관적(가장 많은 라인 수), 낙관치(가장 적은 라인 수), 중간치(기대치, 평균 라인수)를 측정 후 예측치를 구하고, 이를 이용해 비용을 산정하는 기법이다. 추정 LOC는 (..

Tistory

[ 정보처리기사 ] 객체지향 설계 원칙

객체지향 설계 원칙 단일 책임 원칙(Single Responsibility Principle) 단일 책임 원칙이란 하나의 클래스는 하나의 목적을 위해 생성됨을 의미한다. 즉, 클래스가 제공하는 모든 서비스는 하나의 책임을 수행하는 데에 집중돼 있어야 한다는 것이다. 개방 폐쇄 원칙(Open Close Principle) 개방 폐쇄 원칙이란 소프트웨어의 구성요소(컴포넌트, 클래스, 모듈, 함수)는 확장에 열려있고 변경에 닫혀 있어야 함을 말한다. 리스코프 치환 원칙(Liskov Substitution Principle) 리스코프 치환 원칙은 서브 타입(상속 받은 하위 클래스)은 어디서나 자신의 기반 타입(상위 클래스)으로 교체할 수 있어야 한다는 것이다. 인터페이스 분리 원칙(Interface Segreg..

Tistory

[ 정보처리기사 ] 소프트웨어 테스트 원리

소프트웨어 테스트 원리 결함 존재 증명 결함 존재 증명이란 테스트는 결함이 존재함을 밝히는 활동이다. 즉, 결함이없다는 것을 증명할 수 없다는 의미를 내포하고 있는 것이다. 완벽 테스팅은 불가능 완벽 테스팅은 불가능하다는 말은 즉, 무한 경로, 무한 입력값으로 인한 완벽한 테스트는 어렵다는 것을 의미한다. 초기 집중 초기 집중이란 개발 초기에 체계적인 분석 및 설계가 수행되면 테스팅 기간을 단축시킬 수 있고, 재작업을 줄여 개발 기간을 단축시키고 결함을 예방할수 있다는 원리이다. SW 개발 초기에 체계적인 분석 및 설계가 수행되지 않는다면, 그 결과가 프로젝트 후반에 영향을 미치게 되어 비용이 커진다는 요르돈 법칙(Snowball Effect : 눈덩이 법칙)을 적용시킨것이다. 결함 집중 결함 집중이란 ..

Tistory

[ 정보처리기사 ] UI 시나리오 문서 작성 요건

UI 시나리오 문서 작성 요건 완전성(Complete) 완전성은 UI 시나리오는 누락이 없어야 하고 최대한 빠짐없이 가능한 한 상세히 기술하고, 시스템 기능보다 사용자의 테스크에 초점을 맞춰 기술해야 함을 말한다. 일관성(Consistent) 일관성이란 서비스에 대한 목표, 시스템 및 사용자의 요구사항이 일관성이 있어야 하고, 모든 문서의 UI 스타일(Flow 또는 Layout)은 일관적으로 구성해야 한다는 것을 말한다. 이해성(Understandable) 이해성은 처음 접하는 사람도 이해하기 쉽도록 구성하고, 이해하지 못 하는 추상적인 표현이나 용어는 사용하지 않아야 한다는 것이다. 가독성(Readable) 가독성은 문서를 쉽게 읽을 수 있어야 하고, 표준화된 템플릿을 작성해 적용시키는 것을 말한다. ..

Tistory

[ CAP ] CDS 생성하기

자 이제 CAP가 정확히 무엇인지, CDS를 어떻게 생성해 도대체 어떻게 활용할 수 있는지 꼼곰히 체크해볼 거다. 학습을 진행하는 중간 중간에 있을 궁금한 점들을 하나씩 분석하며 포스팅을 진행할 예정이다. 따라서 시간 소요가 많이 될 것이 예상되지만, 처음 접하는 분야에 대해 흥미를 가지기 위해서는 대충 넘어갔다가는 큰코 다칠 수 있으니, 적당한 속도를 유지하면서 스터디를 해보자! CDS 생성하기 BAS 실행 [ SAPUI5 ] BAS 생성 및 SpringBoot 연동 비즈니스 기술 플랫폼(SAP Business Technology Platform (SAP BTP)) - CAP 애플리케이션 생성에 사용하는 IDE BAS 찾기 - SAP BTP 로그인 - SAP BTP Cockpit 접속 - Ser..

Tistory

4월이 시작된다.

3월이 다 지나가버렸다. 입사한 지 2개월이 지나가는 무렵 벌써 벚꽃이 만개하고 있기도 하다. 다사다난하게 지나갔던 거 같긴한데... 뭔가 알맹이가 없는 듯이 지나간 겨울이었다. 괜찮다! 나는 담배도 끊고 있거니와, 지금은 복싱도 엄청 열심히 다니고 있다 ㅋㅋ 살도 빼고 건강도 찾고 실력 있는 개발자도 돼보자! 정처기 실기도 하고 있는데 넘 힘들다... ㅠㅠ 돼빠오 파이팅!!

Tistory

[ 정보처리기사 ] 소프트웨어 개발 방법론

소프트웨어 개발 방법론 구조적 방법론(SD : Structured Development) 구조적 방법론이란 전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합하는 분할과 정복 접근 방식이다. 또한 프로세스 중심의 하향식 방법론이다. 나씨 슈나이더만(Nassi-Shneiderman)은 논리 기술에 중점을 둔 도형식 표현 방법이다. 연속/선택/반복 등 제어 논리구조로 표현되며, 조건이 복합되어 있는 곳의 처리를 시각적으로 명확히 식별하는 데에 적합하다. 정보공학 방법론(IED : Information Engineering Development) 정보공학 방법론은 정보 시스템 개발에 필요한 관리 절차와 작업 기법을 체계화 한 방법론이다. 또한 개발 주기를 이용해 대형 프로젝트를 수행하는 체계적인 방법론이다..

Tistory

[ CAP ] Getting Started

팀장님께서 과제 하나를 주셨다. 그것인 즉슨, 신입사원을 대상으로 CAP 스터디를 각자 진행하되, 매주 한 번씩 스터디의 경과와 한 두 가지 파트를 분석해 공유하는 것이었다. 따라서 현재 진행 중이던 UI5 Walk Through의 복습이 거의 다 끝났기에, CAP에 대해 다뤄보고자 한다. CDS를 핵심적으로 활용하기 때문에 굉장히 중요한 학습이 될 거 같다. Getting Started CAP는 Node.js와 Java를 지원한다. 이번 학습 과정은 Node.js로 진행이 되기 때문에 Java를 사용하고자 한다면 아래 링크에 접속해 진행하면 된다. capire - Getting Started Getting Started How to start a new CAP Java project and how to..

Tistory

[ CAP ] What is the 'Associations'?

Associations Unmanaged Associations entity Employees { address : Association to Addresses on address.ID = address_ID; address_ID : Integer; //> foreign key } entity Addresses { key ID : Integer; } entity Addresses에 있는 key ID를 Integer로 설정한다. Employees의 address에 entity Addresses의 ID와 연결하여, 즉 각 entity 간에 JOIN을 수행할 수 있도록 address_ID라는 address의 별칭을 지정해 참조할 수 있도록 한다. address_ID는 Integer로 선언한다. Managed(..

Tistory

[ CAP ] What is the '@sap/cds/common'?

@sap/cds/common Why use it? @sap/cds/common을 쓰는 이유는 간결하고 이해하기 쉬운 모델로서 작용하기 때문이다. 뿐만 아니라, 모든 Application 간의 상호 운용성을 촉진하며, 실제 Application에서 입증되기도 하였고, 이는 진입 장벽이 최소화/간소화된 데이터 모델이기에 가능하다. 또한 최적화된 구면 및 런타임 성능을 지녔으며, 현지화된 코드 목록과 값에 대한 도움말을 자동으로 지원해준다. Aspect를 사용함으로써 활용도를 확장시키기도 한다. Common Reuse Aspects cuid entity Foo : cuid {...} entity Foo { key ID : UUID; ... } cuid를 사용하게 되면 UUID로 지정해둔 key ID가 자동으로..

Tistory

[ 정보처리기사 ] 반정규화 주요 기법

반정규화 주요 기법 반정규화의 주요 기법을 알아보자. 테이블 병합은 1:1 관계, 1:M 관계를 통합하여 JOIN 횟수를 줄여 성능을 향상시킨다. 테이블 분할은 테이블을 수직 또는 수평으로 분할하는 것으로, 파티셔닝이라고도 불린다. 중복 테이블 추가는 대량의 데이터들에 대한 집계함수(GROUP BY, SUM 등)를 사용해 실시간 통계 정보를 계산하는 경우에 효과적인 수행을 위해 별도의 통계 테이블을 두거나 중복 테이블을 추가하는 것을 말한다. 칼럼 중복화란 JOIN 성능 향상을 위해 중복을 허용하는 것을 의미한다. 중복 관계 추가는 데이터 처리를 위한 여러 경로를 거쳐 JOIN이 가능하지만, 이때 발생할 수 있는 성능 저하를 예방하기 위해 추가적으로 관계를 맺는 방법이다. ESB(Enterprise Se..

Tistory

[ 정보처리기사 ] 네트워크 서비스 공격 기법

네트워크 서비스 공격 기법 네트워크 서비스 공격 기법은 아래와 같다. 사전 대입 공격(Dictionary Attack)이란 시스템 또는 서비스의 ID와 패스워드를 알아내기 위해 ID와 패스워드가될 가능성이 있는 단어를 파일로 만들어 놓고 이 파일의 단어를 대입해 패스워드를 알아내는 공격 기법이다. 무차별 대입 공격(Brute Force Attack)은 패스워드로 사용될 수 있는 영문자(대소문자), 숫자, 특수문자 등을 무작위로 패스워드 자리에 대입해 패스워드를 알아내는공격 기법이다. ARP 스푸핑(ARP Spoofing)은 특정 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply를 생성해 희생자에게 지속적으로 전송한다. 희생자의 ARP Cache table에 특정 호스트의 MAC 정보를..

Tistory

[ CAP ] MTA와 CAP

SAP MTA SAP MTA란 다중 대상 응용프로그램이라고 해석할 수 있으며, Application 및 Resource Module로 구성된 패키지이다. 이는 서로다른 기술을 사용해 생성되고 다른 런타임에 배포되더라도 공통된 수명 주기를 가지고 있다. 다른 Module을 함께 하나로 묶으며, 다른 Module과 Service 및 Interface에 대한 상호 종속성과 관련해 MTA에 패키징이 가능하다. SAP CAP SAP CAP(Cloud Application Programming Model) 은 개발자가 코딩 노력을 최소화하도록 하며, Service 형태로 Business/Enterprise의 특정 로직을 설계 및 구현한다. SAP MTA SAP CAP 모든 UI5/Fiori 앱은 MTA로 배포된다...

Tistory

[ 정보처리기사 ] UI

UI UI 설계 원칙 직관성(Intuitiveness)란 누구나 쉽게 이해하고, 쉽게 사용할 수 있어야 한다는 것을 의미한다. 유효성(Efficiency)는 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작하는 것을 말한다. 학습성(Learnability)는 초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작해야 하는 것이다. 유연성(Flexibility)는 사용자의 인터렉션을 최대한 포용하고, 실수를 방지할 수 있도록 제작하는 것이다. UI 시나리오 문서 작성 요건 완전성(complete)는 누락이 없어야 하고, 최대한 빠짐없이 가능한 한 상세히 기술하는 것을 말한다. 즉 시스템 기능보다 사용자의 테스크에 초점을 두는 것이다. 일관성(Consistent)는 서비스에 대한 목표와 시스템 및 사..

Tistory

[ 정보처리기사 ] 대칭키 암호화 알고리즘

대칭키 암호화 알고리즘 대칭키 암호화 알고리즘의 종류는 아래와 같다. DES(Data Encryption Standard)는 1975년 미국의 연방 표준국(NIST)에서 발표한 대칭키 기반의 블록 암호화 알고리즘이다. 블록 크기는 65bit, 키 길이는 56bit인 페이스텔(Feistel)구조로 되어 있으며, DES를 3번 적용해 보안을 더욱 강화한 3DES로 활용된다. SEED는 1999년 한국인터넷진흥원(KIST)이 개발한 블록 암호화 알고리즘이다. 128bit 비밀키로부터 생성된 16개의 64bit 라운드키를 사용해 총 16회의 라운드를 거쳐 128bit 평문 블록을 128bit 암호문 블록으로 암호화해 출력한다. 블록 크기는 128bit이며, 키 길이에 따라 128bit, 192bit,256bit..

Tistory

[ 정보처리기사 ] 비대칭키 암호화 알고리즘

비대칭키 암호화 알고리즘의 종류는 이렇다. 디피-헬만(Diffie-Hellman)은 1976년에 고안된 알고리즘으로서 유한 필드 내에서 이산대수의 계산이 어려운 문제를 기본 원리로 한다. 공개키 암호 방식의 개념을 이용해 두 사용자 간 공통의 암호화키를 안전하게 공유할 방법을 제시한다. 이는 많은 키 분배 방식에 관한 연구의 기본이 된 최초의 비밀키 교환 프로톨이다. RSA(Rivest-Shamir-Adleman)는 1977년 3명의 MIT 수학 교수가 고안한 큰 인수의 곱을 소인수분해하는 수학적 알고리즘을 이용하는 공개키 암호화 알고리즘이다. 비밀키의 복호화가 어려운 RSA 안전성은 소인수분해 문제의 어려움에 근거를 둔다. ECC(Elliptic Curve Cryptography)는 1985년에 코블리..

Tistory

[ 정보처리기사 ] 디자인 패턴

디자인 패턴 디자인 패턴은 크게 생성 패턴, 구조 패턴, 행위 패턴으로 나눌 수 있다. ※ 제목 우측의 영어 대문자는 용어 앞글자를 따서 외우기 쉽게 하기 위해 나름대로 적어놓은 것이다. 생성패턴 A B F P S Builder는 복잡한 Instance를 조립해 만드는 구조이다. 복합 객체를 생성할 때 객체를 생성과 구현을 분리함으로써 동일한 생성 절차에서 서로 다른 표현 결과를 생성한다. Prototype은 처음부터 일반적인 원형을 만들어 놓고, 그것을 복제한 후 필요한 부분만 수정해 사용한다. 생성할 객체의 원형을 제공하는 Instance에서 생성할 객체들의 Type이 결정되도록 설정한다. Factory Method는 상위 Class에서 객체를 생성하는 Interface를 정의하고, 하위 Class에..

Tistory

[ SAPUI5 ] MessageBox에 대한 기본 이해

이번주는 다시 SAPUI5 학습을 이어서 진행한다. SAP 공식 사이트의 도큐먼테이션을 참고해 전에 했던 코드 소스에 대해 복습하는 시간을 가질 것이다. 다만 좀 더 구체적이고 세분화하는 것보다는 기능이 작동하기까지의 흐름에 익숙해지는 연습을 하는 시간이라고 생각하며 진행한다. 간간이 화면에 구현되지 않는 이유를 좀 더 정밀히 분석하고 기능 구현에 초점을 맞춰서 해보자! MessageBox MessageBox는 다양한 유형의 Message를 User에게 표시하기 위한특수 대화 상자 Control이다. sap.m.MessageBox Control은 sap.m.Dialog와 동일한 반응형 동작을 가진다. 뿐만 아니라, 세부사항 표시 옵션 기능을 사용할 수 있게 해준다. Message는 Error, Warni..

Tistory

[ 정보처리기사 ] 해시 암호화 알고림즘

해시 암호화 알고리즘 해시 암호화 알고리즘이란 임의의 길이의 정보를 입력받아 고정된 길이의 암호문(해시값)을 출력하는 것을 의미한다. 이는 원래 입력값을 찾아낼 수 없는 일방향성을 가지며, 복호화가 불가능하다는 특징이 있다. MD5(Message-Digest Algorithm)은 1991년 R.rivest가 MD4를 개선하여 만든 암호화 알고리즘이다. 이것은 프로그램이나 파일의 무결성 검사에 사용되며, 각각의 512bit 입력 메세지 블록에 대해 차례로 동작하여 128bit 해싯값을 생성한다. SHA-1(Secure Hash Algorithm)은 1993년 NSA에서 미 정부 표준으로 지정된 것을 말하며, DSA(Digital Signature Algorithm에서 사용되고 160bit 해싯값을 생성한다..

Tistory

[ 정보처리기사 ] 스키마

스키마 스키마(Schema)의 유형은 크게 세 가지로 구분할 수 있다. 먼저 외부 스키마(External Schema)는 User나 Application Programmer가 각 개인의 입장에서 필요로 하는 Database의 논리적 구조를 정의한다. 전체 Database의 논리적인 한 부분으로 볼 수 있으므로 Sub Schema라고도 한다. 하나의 Database 관리 시스템에서는 여러 개가 존재할 수 있다. 개념 스키마(Conceptual Schema)는 개체 간의 관계와 제약 조건을 나타내고 Database의 접근 권한, 보안 정책 및 무결성 규정에 관한 명세를 정의한다. Database의 전체적인 논리 구조로서 모든 응용 프로그램이나 User들이 필요로 하는 Data를 통합한 조직 전체의 Datab..

Tistory

[ 정보처리기사 ] 네트워크 슬라이싱

네트워크 슬라이싱 네트워크 슬라이싱(Network Slicing)이란 하나의 물리적 Core Network를 독립된 다수 Virtual Network로 분리해 고객 맞춤형 Service를 제공하는 5G 핵심기술이다. 이는 SDN과 NFV 기술을 활용해 하나의 물리적인 망에 여러 개의 논리적인 망을 만들어 비용을 절감할 수 있다. SDN(Software Defined Network)은 개방형 API(Overflow) 기반의 Network 장비의 Traffic root를 지정하는 Control Plane과 Traffic 전송을 수행하는 Data Plane을 분리해 Network Traffic을 집중적으로 관리하는 기능을 한다. NFV(Network Function Virtualization)는 범용 하드웨어..

Tistory

[ 정보처리기사 ] 소프트웨어 아키텍처

소프트웨어 아키텍처 소프트웨어 아키텍처(Software Architecture)는 여러 가지 Software 구성요소와 그 특성 중에서 외부에 드러나는 특성, 구성요소 간의 관계를 표현하는 시스템 구조를 말한다. 그 유형은 다음과 같다. 브로커 패턴(Broker Pattern)은 분리된 Components로 이루어진 분산 시스템에 사용한다. 또한 Components는 Remote Service 실행을 통해 상호작용이 가능하다. 계층화 패턴(Layered Pattern)은 시스템을 계층으로 구분해 구성하는 것이다. 각 하위 Modules는 특정 수준의 추상화를 제공하며 각 계층은 다음 상위 계층에서 Service를제공한다. 클라이언트-서버 패턴(Client-Server Pattern)은 하나의 Server..

Tistory

[ 정보처리기사 ] 경험 기반 테스트

경험 기반 테스트 경험 기반 텍스트 유형 중 탐색적 테스트(Exploratory Test)는 Test Script 또는 Test Case를 문서로 작성하지 않고, 경험에 바탕을 두고 탐색적으로 기능을 수행하는 것을 말한다. Test 대상에 대한 이해, Test Case 설계, Test 실행의 병행을 수행하는 것이다. 또한 중대한 Test 위주의 Test Engineer의 Heuristic 역량이 필요하다. 관련 용어로는 Test Charter, Time Boxing, Note, Retrospective 등이 있다. 오류 추정(Error Guessing)은 개발자가 범할 수 있는 실수를 추정하고 이에 따른 결함이 검출되도록 Test Case를 설계하는 유형이다. 특정 Test 대상이 주어지면 Tester의..

Tistory

[ 정보처리기사 ] 인터페이스 구현 검증 도구

인터페이스 구현 검증 도구 인터페이스 구현 검증 도구는 다음과 같다. xUnit은 Java(Junit), C++(Cppunit), .Net(Nunit) 등을 지원하는 Unit Test Framework이다. 즉 소프트웨어의 함수나 클래스와 같은 서로 다른 구성원소를 Test하는 도구이다. STAF는 서비스 호출, 컴포넌트 재사용 등의 다양한 환경을 지원하는 Test Framework이다. 각 테스트 대상의 분산 환경에 Demon을 사용해 Test 대상 프로그램을 통해 Test를수행하고 통합 및 자동화 한다. FitNesse란 Web 기반의 Test Case를 설계 및 실행, 결과 확인 등을 지원하는 Test Framework를 말한다. 이는 사용자가 Test Case Table을 작성할 때 빠르고 편하게..

Tistory

[ 정보처리기사 ] 접근 통제 유형

접근 통제 유형 접근 통제 유형은 이렇다. 임의적 접근 통제(DAC: Discretionary Access Control)란 시스템에 대한 접근을 User와 Group의 신분 기반으로 제한하는 것을 말한다. 즉 DAC에서 User는 자원과 관련된 ACL(Access Control List)이 수정됨으로써 자원에 대한 권한을 부여받는 것이다. 강제적 접근 통제(MAC: Mandatory Access Control)는 시스템 정보의 허용 등급을 기준으로 User가 갖는 접근 허가 권한에 근거하여 시스템에 대한 접근을 제한한다. MAC에서 User는 자원에 대한 권한을 Administrator로부터 부여받으며, Administrator만이 시스템 자원에 대한 권한을 할당할 수 있다. 역할 기반 접근 통제(RB..

Tistory

[ 정보처리기사 ] SCRUM

SCRUM SCRUM 방법론이란 ProductBacklog를 바탕으로 2~4주 정도의 Sprint 기간 동안 scrum 팀을 통해 구현해 나가는 개발방법론을 말한다. 여기서 Backlog는 제품과 프로젝트에 대한 요구사항을 의미하며, Sprint는 2~4주 짧은 개발 기간에 반복적인 수행을 통해 개발 품질을 향상시키는 것을 말한다. 더 나아가, Scrum Meeting은 매일 15분 정도의 미팅으로 To-Do List 계획을 수립하는 데일리 미팅이다. Scrum Master는 프로젝트 리더이며 Scrum 수행 시에 문제를 인지 및 해결하는 사람이다. Sprint Retrospective는 Sprint 주기를 되돌아보며 정해놓은 규칙 준수 여부, 개선점 등을 확인 및 기록, 해당 Sprint가 끝난 시점이..

Tistory

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

아래는 C언어의 2차원 배열 형태이다. 결과는 2차원 배열 형태로 출력된다. 출력값을 적으시오. void main { field {{0,1,0,1}, {0,0,0,1}, {1,1,1,0}, {0,1,1,1}}; mines {{0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0}}; int w = 4, h = 4; for(y=0, y

Tistory

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

다음 보기 중, 형상 관리 항목을 3가지 고르시오. ㄱ. ATM ㄴ. CVS ㄷ. OLAP ㄹ. DDOS ㅁ. SVN ㅂ. Cyber Kill Chain ㅅ. OLTP ㅇ. GIT CVS, SVN, GIT STUDENT 테이블에서 컴퓨터과 학생 50명, 전기과 학생 100명, 인터넷과 학생 50명의 정보가 저장되어 있을 때, 다음 SQL문의 실행 결과에 따른 튜플의 수는? (단, DEPT 칼럼은 학과명이다.) 1) SELECT DERP FROM STUDENT; 2) SELECT DISTINCT DEPT FROM STUDENT; 3) SELECT COUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT = '인터넷과'; 1) 200 2) 3 3) 1 다음 코드에 대한 출력값을 작성하..

Tistory

복싱을 시작한다.

다음주 월요일부터 복싱을 시작하기로 했다! 사진은 약 반년 전인데 지금은 저때보다 살이 갑절로 더 쪘다. 이제는 계단 오르는 거도 벅찰 정도로 나의 중량을 견디지 못하는 시기이기도 하다. 2년 전 목에 피맛이 날 정도로 체중 감량을 해보았던 거처럼 한 번 더 한계에 도전해볼 거다. 앞으로 돼빠오의 감량일지와 함께 해볼 예정이다! 파이팅!!

Tistory

[ AWS ] VPC Routing Table 수 정하기

VPC(Virtual Private Cloud)의 세계에 계속 있다보니 클라우드를 사용자가 원하는 대로 무언가 해보는 것은 쉽지 않음을 많이 느끼고 있다. 분명 대용량의 데이터를 관리하고 배포하는 등의 작업을 위해서는 필수적으로 학습해 놓아야 하는 것이겠지만, 전문가가 아닌 이상은 기본 사항에서 턱턱 막히고 있는 수준에 머물고 있으니 말이다. 하지만 지금 하고 있는 AWS 강의를 열심히 들어 놓으면 SAP를 화용하는 데에 도움이 될 것이라고 굳게 믿는다! AWS에서 VPC에 진입하여 Route tables(라우팅 테이블)로 들어간다. 그리고 검색창에 workload로 입력해 필터링을 해준다. VPC CIDR Region Routes Required VPC Route Table Prod 10.82.1.0/..

Tistory

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

다음은 관계 데이터 모델에 대한 설명이다. 괄호 안에 들어가는 용어를 작성하시오. ( )은/는 관계 데이터의 연산을 표현하는 방법으로, 원하는 정보를 정의할 때에는 계산 수식을 사용한다. 수학의 predicate calculus에 기반을 두고 있으며, 관계데이터 모델의 제안자인 codd가 수학에 가까운 기반을두고 특별히관계데이터베이스를 위해 제안해 탄생했다. ( )은/는 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지니며, 튜블 ( )와/과 도메인 ( )이/가 있다. 관계해석 다음은 대칭키 알고리즘에 대한 설명이다. 해당 설명에 맞는 용어를 보기에서 골라 작성하시오. 1. Xuejia Lai와 James Messey가 만든 알고리즘으로 PES(Proposed Encryption Standard..

Tistory

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

다음 설명에 알맞은 테스트 용어를 보기에서 골라 작성하시오. 오류를 제거하거나 수정한 시스템이나 시스템 컴포넌트 도는 프로그램이 오류 제거와 수정에 의해 새로이 유입된 오류가 없는 지를 확인하는 일종의 반복 시험이다. 반복적인 시험이 필요한 이유는 오류가 제거 및 수정되는 상당 수의 시스템이 의도치 않았던 오동작이나 새로운 형태의 오류를 일으키기 때문이다. 결국 수정 및 변경된 시스템이나 시스템 컴포넌트 또는 프로그램이 명세된 요구사항을 충족시키는 지를 확인하는 시험의 한 형태이다. Regression 다음 테이블에서 πTTL(employee)에 대한 연산 결괏값을 작성하시오. Index AGE TTL 1 55 부장 2 35 대리 3 42 과장 4 45 차장 TTL 부장 대리 과장 차장 다음은 파이썬 코..

Tistory

[ AWS ] Attachments 생성하기

AWS를 이용할 때마다 느끼는 점은 가이드라인을 통해 무언가를 따라하기 위해서는 가이드라인에서 사용하고 있는 언어를 똑같이 써야지만 따라하기가 수월하다는 것이다. 한국어로 설정 해놓았을 때에는 페이지 이동 루트가 달라지는 듯 하다. 즉 웹 페이지에 표현되는 카테고리의 종류나 수가 다르고 라우팅 설정도 다르게 돼 있는 거 같다. 아무튼 이제 이유를정확히 알았으니 빠르게 학습해 나가보자! 이제 Attachments를 생성해 Core Network와 VPC, Gateway를 연결할 것이다. AWS Network Manager에 접속해서 Attachments(연결)을 선택해 클릭하고 Create attachment(연결 생성)을 클릭한다. Attachment Name Edge Location Attachment..

Tistory

[ AWS ] Core Network Policy(CNP) Segment Routing 수정하기

AWS는 내가 지금 다니고 있는 회사에서 사용하는 SAP와 유사하다고 한다. 다만 각각 다른 방식으로 서비스를 제공하고 있다는 점을 알게 되었다. AWS의 경우에는 User가 클라우드에 대한 자유도가 굉장히 방대하지만 클라우드에 대한 이해도가 없는 사람에게는 그만큼 접근성이 떨어지거나 활용도가 미흡할 것이다. 반면에 SAP는 완성된 UI를 User에게 제공하면서 손쉽게 클라우드 플랫폼을 사용할도록 해주지만, 그에 반해 커스터마이징이 어렵다는 문제도 있다. Policy version에서 전에 생성해 두었던 Policy version - 2를 클릭해 들어가보면 edge location에 지정된 region에 Core Network Edge가 생성되어 있다. Core Network Edge는 Core Netw..

Tistory

[ AWS ] What is the 'Cloud WAN'?

Cloud WAN Cloud WAN이란 Manged WAN(Wide Area Networking) Service로, 사용자의 Cloud와 On-premise 환경에 걸친 Resourse들을 연결하는 Global Network를 빌드 및 관리, 모니터링 할 수 있는 기능을 제공한다. AWS Network Manager : 구성한 Global Network를 중앙에서 관리하기 위한 AWS Management Console 내의 User Interface 및 API를 의미한다. Global Network : Network 요소들을 위한 큰 Container와 같은 역할을 하는 단일 Private Network로, Global Network는 Transit Gateway들과 Core Network를 모두 포함 ..

Tistory

[ AWS ] Attachment Policy 생성하기

오전에 IAM 계정으로 진행했을 때 Policy 카테고리가 전혀 없길래 root 계정을 굳이굳이 들어와서 한참을 헤메다가 리소스가 배포가 된 후에(사실 지금 리소스 배포에도 오류가 있어 제발 되기만을 바라는 중이다.) 아가와 같이 확인을 할 때 Policy 메뉴가 없어서 당황스러웠다. 언어 설정 이슈가 있었던 적이 기억이 나서 언어를 원래 English로 되어 있던 걸 다시 English로 똑같이 설정해 저장하니 카테고리가 더 생겼다 ㅡㅡ 뭔 이런... 아무튼 가이드라인 대로스터디를 계속 진행해보자 ㅠㅠ 사이트 상단의 검색창에 AWS Network Mager를 검색해 진입한 뒤, Policy versions(정책 버전)을 찾아 클릭한다. 클릭해 보면 Provisioning 되어 있는 Policy vers..

Tistory

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

다음에서 설명하는 공격 기법을 쓰시오. 이 공격은 APT 공격에서 주로 쓰이는 공격으로, 공격 대상이 방문할 가능성이 있는 합법적인웹 사이트를 미리 감염시킨 뒤, 잠복하고 있다가 공격 대상이 방문하면 대상의 컴퓨테어 악성코드를 설치하는 방식이다. 워터링 홀(Watering Hole) APT(Adavanced Persistent Threat)란 특정 목표 대상에 대해 취약점을 파악하고 지속적으로 다양한 방법을 이용해 공격하는 방법을 말한다. 그 중 Cyber Kill Chain은 APT에 대응하기 위해 록히드 마틴사가 제시한방법으로, 공격자의 공격 단계 중하나만 사전에 확실히 제거해도 실제 공격까지 이어질 수 없다는 점에서 착안한 방어 전략이다. 다음은 V&V 모델을 형상화한 V 다이어그램이다. 빈칸에 들..

Tistory

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

다음 설명에 맞는 RAID 단계를 쓰시오. - 두 개 이상의 하드디스크를 병렬로 여결해, 하나의 디스크처럼 이용하는 기술이다. - 스트라이프(Stripe) 방식으로 구현해 I/O 속도가 빠르다. - 데이터를 블럭 단위로 분할하고 나누어 저장하기 때문에 하나의 디스크에 문제가 생기면 데이터 사용이 불가능해진다. RAID-0 RAID란 하드디스크 여러개를 활용해 속도 향상이나 안정성을 향상시키는 기술이다. RAID-0는 속도 향상만을 추구하는 스트라이핑 모델이며 디스크 n개에서 n배의 속도를 가진다. RAID-1은 안정성만을 추구하는 미러링 모델이며, 읽기 속도는 n배 샹상되지만, 쓰기 부하는 n배로 늘어난다. RAID-2는 스트라이핑으로 구현하며, 오류 정정을 위한 Hamming code를 사용한다. RA..

Tistory

[ AWS ] Cloud WAN Resource 배포하기

오늘은 AWS에서 제공하는 무료 강의를 토대로 CloudWan을 통해 기본적인앱을 생성해보고자 한다. 현재 기존에 있던 VPC를 삭제하는 과정에서 문제가 생기고 있어 실질적으로 진행이 어려운 상태이긴 하지만... 할 수 있는 데로 진행을 해보고자 한다. [ AWS ] What is the 'Cloud WAN'? Cloud WAN Cloud WAN이란 Manged WAN(Wide Area Networking) Service로, 사용자의 Cloud와 On-premise 환경에 걸친 Resourse들을 연결하는 Global Network를 빌드 및 관리, 모니터링 할 수 있는 기능을 제공한다. AWS Network Manage pythonchoboman.tistory.com CloudFormation AWS ..

Tistory

[ AWS ] Cloud WAN Resource 배포하기(2)

이전 파트에서 CloudWan Resource를 배포하는 과정에서 문제가 생겨 여러 가지 시도를 해본 끝에, 서브넷이 잘못 생성돼 있었고 새로운 VPC를 생성하면서 public subnet을 새롭게 설정해주었더니 Cloud9에 진입할 수 있게 되었다! 정확한 이유는 모르겠지만 일단 학습에 중점을 두고 다시 시도해보자. [ AWS ] What is the 'Cloud WAN'? Cloud WAN Cloud WAN이란 Manged WAN(Wide Area Networking) Service로, 사용자의 Cloud와 On-premise 환경에 걸친 Resourse들을 연결하는 Global Network를 빌드 및 관리, 모니터링 할 수 있는 기능을 제공한다. AWS Network Manage pythoncho..

Tistory

[ AWS ] Hello World Lambda 생성하기

이번주부터는 틈틈히 AWS에서 웹페이지 등을 구현하는 방법에 대해 AWS에서 무료로 제공하고 있는 강의를 들으며 해당 내용을 정리해볼 것이다. 국비 지원 훈련을 받았을 때 AWS 구조나 사용 방법에 대해 친절히 설명을 받지 못했었기에 이번 기회를 통해 AWS를 활용하는 방식이 어떤 것인지 파악해볼 것이다. Lambda 기본 함수 생성하기 AWS 계정에 로그인을 한 후에 사이트 상단에 있는 검색창에 Lambda를 검색하고 클릭해 해당 페이지로 접속한다. Lambda 페이지에서 위 페이지는 Dashboard를 클릭해 확인할 수 있다. 해당 페이지로 이동한 후, 우측 상단에 있는 Create function을 클릭한다. 어느 순간부터 언어 설정이 영어로 되지 않고 있으나, 상관없다. 블루프린트 사용을 선택해주..

Tistory

[ AWS ] Webpage Lambda 생성하기

이제부터는 앞서 수행해본 Hello world를 참고할 수 있는 코드를 활용해 웹 페이지에서 보여주려고 한다. 원래는 Lambda 자체적으로는외부 호출이 불가능하다. 이전 파트에서 보여주었던 것은 외부 인터넷에서 호출하여 볼 수 없다. 이번에는 외부에서도 생성된 서비스를 볼 수 있도록 Function URL 기능을통해호출 가능한 URL을 생성할 것이다. 이전 파트와 유사하지만 조금 다르게 진행한다. 이번에는 블루프린트를 사용하지 않고 직접 새로 작성을 선택한다. 함수 이름은 single-webpage로 입력하 아까와 마찬가지로 Python을 선택해준다. 뿐만 아니라 Advanced Setting, 즉 고급 설정을 열어서 함수 URL 활성화를선택해주고, 그 하위 목록에서의 인증 유형을 NONE으로 선택해준..

Tistory

[ AWS ] Api Service Lambda 생성하기

새로운 함수를 생성할 때 새로 작성을 선택해주고, 함수 이름은 api-service-create로 입력하고, Python 3.9를 선택한다. 그리고 밑에 있는 기본 실행 역할 변경에서 실행 역할은 AWS 정책 템플릿에서 새 역할 생성을 선택한다. 역할 이름은 my-lambda-role로 입력하고 정책 템플릿에서 DynamoDB를 검색해 단순 마이크로서비스 권한을 선택한다. import json import boto3 import random import json def lambda_handler(event, context): member_name = ['Ama','Jone','Zon','Penny','Jessie'] member_status = ['Happy','Sad','Serious','Satisfi..

Tistory

[ SAPUI5 ] Fiori 개발의 10가지 황금 규칙

Fiori를 통해 SAP 개발을 하기위해서는 최적의 조건과 환경에서 최선의 결과를 보여주는 것이 중요할 것이다. 이제 Fiori 개발에 필요한 몇 가지의 황금 규칙을 알아보겠다. SAP Fiori App이 승인된 UX 디자인을 제공해야 한다. "모든 UI 시나리오에 디자인 중심 개발 프로세스가 유효하다." "이미 있는 Control과 Pattern만을 사용해야 하는 디자인인지 확인한다." Fiori 디자인 가이드라인을 따라야 하는 디자인에 대한 종합적/보편적 이해가 성립되는지 확인한다. SAP Fiori UI가 SAPUI5로 빌드된다. "일반적으로 새로운 Fiori 어플리케이션은 SAPUI5 UI 기술을 사용해 Build해야 한다." "표준 S/4HANA 어플리케이션에는 스마트 템플릿(Meta Data ..

Tistory

[ SAPUI5 ] SAP Fiori LaunchPad

LaunchPad를 직접 사용해본 적은 없지만 심심찮게 주변에서 써볼 수 있는 링크를 공유해준다든지, 간혹 모르는 것을 구글링하다가 들어간 사이트가 우연히 SAP Fiori LaunchPad였기에 처음 출입 화면은 익숙한 편이다. 하지만 앞으로 기능 구현에 앞서 논리 구조를 이해하기 위해 자주 활요할 것 같아서 해당 개념을 살펴볼 것이다. LaunchPad "LaunchPad는 SAP에 로그인 하면 가장 먼저 나오는 Page로, 모바일 장치와 데스크톱 장치 모두에서 SAP Fiori App을 사용하기 위한 시작점이다." "LaunchPad 홈페이지에서는 App을 실행할 수 있는 타일과 그에 관한 추가 정보가 제공되고, PAge를 개인이 설정할 수 있도록 마련되어 있다." Tile "Tile은 SAP Fi..

Tistory

구글 애드센스가 승인되었다!

포기할 때즘 승인해주는 구글... 거의 2달만에 승인을 해줘서 어안이 벙벙하다. 꾸준히 올리면 누구든 승인 받을 수 있을 거 같다. 자기만족을 향해 열심히 공부해 보자! 파이팅!!

Tistory

[ 돼빠오의 먹부림 ] 잠실역 주변 1편

안녕하세요? 다시 돌아온 돼빠오의 먹부림을 자랑하는 시간이다. 저번 포스팅에 이어 내가 가봤던 지역이나 동네의 요리들을 소개하고자 한다. 나와의 약속이었던 해당 지역 방언을 사용하기로 하여 저번 제주도 편이 정말로 힘들었다. 그렇지만 제주도의 방언이 참 재밌기도 하고 정감이 가서 좋았다. 아무튼 오랜만에 잠실에서 돼빠오의 먹부림을 시작해보자. 청년조개 청년조개 잠실새내점 : 네이버 방문자리뷰 390 · 블로그리뷰 181 m.place.naver.com 별점 : 이곳을 처음 갔을 때는 정말 우연히 검색을 하다가였나 아니면 지나가던 때였나 가물가물하지만 한창 청년 청년 하면 믿고 거르고 싶었던 시기였다. ㅋㅋ 그러다가 새로 오픈한 집이 있길래 설마 오픈부터 청년해버리겠어? 하며 무작정 가보았다...

Tistory

[ SAPUI5 ] Unit Test by using Qunit

오늘은 나타내고자 하는 기능들이 잘 구현되는가에 대해 다양한 방법과 절차로 테스트 하는 것에는 어떤 것이 있는지 살펴보려고 한다. 즉 어플리케이션이 가지는 다양한 측면을 테스트 하는 방법에 관해 학습할 것이다. 더 나아가, SPUI5가 다룰 수 있는 영역 내의 테스트가 무엇인지 생각하며 스터디를 진행할 것이다. QUnit "QUnit은 JavaScript 단위 및 통합 테스트 프레임워크이다." "일반 JavaScript Code를 테스트할 수 있으며 바로 사용이 가능한 비동기 테스트를 지원한다." Mock and Stub "Mock은 기대치를 설정할 수 있는 Object로, 예상한 Action이 실제로 발생했는지 검증도 함께 진행한다." "Stub은 테스트 대상 Code에 전달하기 위해 사용하는 Obje..

Tistory

[ SAPUI5 ] Routing and Navigation

Routing과 Navigation은 페이지의 종속 관계 혹은 절대/상대 경로를 생성하는 데에 있어 굉장히 중요한 파트라고 생각하고 있다. [ manifest.json ]에서 Route와 Path 등을 활용해 사용자를 구분해 페이지의 이동을 달리한다든지, 상품의 상세 정보가 담긴 View로 이동할 때 해당 상품의 카테고리에 따라 다른 경로를 지정해주는 등을 수행할 수 있을 것이다. sap.m.Page "sap.m.Page Control이 Page로 사용될 수 있으며, Aggregation을 "Page"라고 부르고 있으며, 브외의 다른 Control도 사용이 가능하다." "대개 일반 모바일 어플리케이션은 몇 개의 Page로 구성돼 있으며 User가 세부사항 Page로 Navigation 하거나 다시 원래 ..

Tistory

[ SAPUI5 ] CSS and XML Fragment

이번에는 CSS의 여백을 설정하는 방법에 대해서 탐구해보고자 한다. 추후에 거래처에서 원하는 레이아웃의 틀이 있을 것이고, 각 레이아웃 구역에 어떤 정보를 보여주는 위치를 커스터마이징 하기 위해서는 CSS 설정이 중요다고 할 수 있겠다. CSS "전체 단면, 양면 및 응답형 여백을 추가하거나 여백을 제거하는 사전 정의된 CSS Class List를 제공한다." "사전 정의된 모든 여백의 CSS Class는 오른쪽에서 왼쪽으로 쓰는(Right To Left) 언어를 지원한다." "컨텐트 안쪽 여백을 (반응형으로) 추가하거나 제거하는 CSS Class를 사용할 수 있게 된다." 이에 따라 "모든 레이아웃에서 Control 주변과 Container 내부 간격의 일관성을 부여한다." sapUiTinyMargin..

Tistory

[ SAPUI5 ] Aggregation Binding and Expression Binding

Data를 Binding할 때 하나의 데이터 값만 화면에서 보여줄 수 있지만, 테이블 열에 여러 가지의 속성을 설정해두고, 그 속성에 맞는 행 다수의 데이터 정보를 보여주고 싶을 때는 배열함수를 사용하는 등 List화 하여 UI를 표현할 수 있다. Aggregation Binding "Aggregation Binding은 Table, List 또는 풀다운 Control과 같은 Aggregation을 지원하는 UI Control에 Data set를 Binding하는 데에 사용한다." "Control의 bindAggregation(sPath, oTemplate) 메서드를 사용해 Collection을 Binding한다. "UI 템플릿은 하나 이상의 다른 UI Control로 구성되고, 반복된 List 항목으로..

Tistory

[ SAPUI5 ] OData Model

SAP에서 UI를 구현하기 위해서 가장 중요한 것 중 하나는 바로 OData Model이다. 이미 공식 홈페이지의 도큐멘테이션이나 타 사이트의 예제를 보며 스터디해본 바가 있지만, 수박 겉핥기식으로 했기 때문에 이번 기회에 제대로 알고 가면 좋을 것 같다. OData Model "OData Model은 Data API를 생성 및 사용하기 위한 산업 표준 프로토콜이다." 또한 "HTTP와 같은 주요 프로토콜 및 XML, JSON과 같은 개방형 표준을 기반으로 하고 있으며, REST 원칙에 따른 Data 서비스 제공을 가능하게 해준다." 뿐만 아니라, "특정 규칙에 따라 구성된 URL을 사용하여 데이터를 처리하며, Collection, Entry, Property와 같은 Resource를 표현하는 데이터 형..

1 2 3