pythonchoboman의 등록된 링크

 pythonchoboman로 등록된 티스토리 포스트 수는 265건입니다.

[ 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..

[ 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로 포장해..

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

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

[ 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)는 뜻 그대로 전사적 자원 관리이다. 기업 활동을 위해 사용되는 모든 인적/..

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

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

[ 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..

[ 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 인메모리 데이터베이스는 많은 데이터를 처리하는 애플리케이션 환경에서 트랜잭션, 분석, 시뮬레이션 등의 작업에 적합하다. 뿐만 아니라, 의료기기 모니터링, 실시간 재무 분석, 온라인 뱅킹, 신용카드 판매, 온라인 경매, 신제품..

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

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

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

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

[ 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)를 사용하여 ..

[ Concept ] What is the OLAP? [내부링크]

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

[ 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)는 데이터가 생성되는 즉시 스트리밍 데이터를 연속적으로 실시간 처리하는 것을 의미한다. 스트림 처리는 데이터 크기를 알 수 없으..

[ 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 ..

[ Concept ] What is the Stream-Processing? [내부링크]

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

[ Concept ] What is the Batch-Processing? [내부링크]

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

[ Diary ] 첫 프로젝트 시작. [내부링크]

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

[ 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'를 사용하면 여러 가지 메서드들의 재사용을 ..

[ 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의 조건 또는 기능을 다양하게 구현할 수 있다는 점을 깨달았다. 당연히 커스터마이징 하는 데에는 더 많은 공부가 필요하겠지만, 하나 하나..

[ 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 개체를 생성하여 화면에서 보여주고 싶은 데이터 ..

[ 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..

[ 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..

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

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

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

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

[ 정보처리기사 ] 빌드 자동화 도구 [내부링크]

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

[ 정보처리기사 ] 버전 관리 도구 [내부링크]

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

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

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

[ 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..

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

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

[ 정보처리기사 ] 요구사항 분석 기법 [내부링크]

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

[ 정보처리기사 ] 개발 비용 산정 [내부링크]

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

[ CAP ] service 실행 기본 이해하기(1) [내부링크]

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

[ 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',..

[ 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을 사용함으로써 관계형 데이터..

[ 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의 값은 파일의 이름을 포함하는 요소에 대한..

4월은 출근, 자격증, 결혼식, 회식, 복싱, 각종 모임... [내부링크]

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

[ 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..

[ CAP ] Temporal Data 적용시키기 [내부링크]

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

[ 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 ..

[ 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..

[ 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로 간편하게 정의내릴 수 있다.

[ 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..

[ 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 되고 있는지 명확..

[ 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는 사용자가 커맨드 라인(명령행)을 키보드 입력뿐만 아니라, 마우스 등의 위치 지정 도구를 사용해 도형의 형태로 화면에 표시되는 아이콘을 지정한다. 또한 메뉴 항목 목록 중에서 메뉴를 선택함으로써 ..

[ 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는 원격으로 작업할 때 웬만한 네트워크 환경에서도 안정적으로 작..

[ 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..

[ 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 표에 나와 있는..

[ 정보처리기사 ] 개발 비용 산정 [내부링크]

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

AWS... [내부링크]

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

[ 정보처리기사 ] 고립화 수준 [내부링크]

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

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

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

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

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

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

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

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

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

4월이 시작된다. [내부링크]

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

[ CAP ] CDS 생성하기 [내부링크]

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

[ 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가 자동으로..

[ 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(..

[ 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..

[ 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로 배포된다...

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

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

[ 정보처리기사 ] 반정규화 주요 기법 [내부링크]

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

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

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

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

대칭키 암호화 알고리즘 대칭키 암호화 알고리즘의 종류는 아래와 같다. 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..

[ 정보처리기사 ] UI [내부링크]

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

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

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

[ SAPUI5 ] MessageBox에 대한 기본 이해 [내부링크]

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

[ 정보처리기사 ] 디자인 패턴 [내부링크]

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

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

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

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

네트워크 슬라이싱 네트워크 슬라이싱(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)는 범용 하드웨어..

[ 정보처리기사 ] 스키마 [내부링크]

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

[ 정보처리기사 ] 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가 끝난 시점이..

[ 정보처리기사 ] 접근 통제 유형 [내부링크]

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

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

인터페이스 구현 검증 도구 인터페이스 구현 검증 도구는 다음과 같다. 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을 작성할 때 빠르고 편하게..

[ 정보처리기사 ] 경험 기반 테스트 [내부링크]

경험 기반 테스트 경험 기반 텍스트 유형 중 탐색적 테스트(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의..

복싱을 시작한다. [내부링크]

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

[ 정보처리기사 ] 실기 / 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 다음 코드에 대한 출력값을 작성하..

[ 정보처리기사 ] 실기 / 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

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

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

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

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

[ 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/..

[ 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..

[ AWS ] Attachments 생성하기 [내부링크]

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

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

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

[ AWS ] Attachment Policy 생성하기 [내부링크]

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

[ 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를 모두 포함 ..

[ 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..

[ 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 ..

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

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

[ 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..

[ AWS ] Webpage Lambda 생성하기 [내부링크]

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

[ AWS ] Hello World Lambda 생성하기 [내부링크]

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

구글 애드센스가 승인되었다! [내부링크]

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

[ SAPUI5 ] SAP Fiori LaunchPad [내부링크]

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

[ 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 ..

[ 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 하거나 다시 원래 ..

[ SAPUI5 ] Unit Test by using Qunit [내부링크]

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

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

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

[ SAPUI5 ] OData Model [내부링크]

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

[ 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 항목으로..

[ SAPUI5 ] CSS and XML Fragment [내부링크]

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

[ 정보처리기사 ] 실기 / 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();..

[ SAPUI5 ] / Component [내부링크]

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

[ SAPUI5 ] / Data Binding [내부링크]

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

별 헤는 밤이 생각나는 밤. [내부링크]

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

[ SAPUI5 ] JSONModel Table Binding in SAPUI5 [내부링크]

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

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

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

[ SAPUI5 ] Page Variant Management [내부링크]

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

[ 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..

[ Diary ] 노트북이 희생 당했다. [내부링크]

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

[ SAPUI5 ] Table Personalization [내부링크]

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

[ 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..

[ 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의 메타데..

[ 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..

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

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

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

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

[ 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 ]

[ 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에 있..

[ Diary ] 고양이들은 말이죠. [내부링크]

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

[ 정보처리기사 ] 실기 / 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)란 엔터프라이즈의 미들웨..

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

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

[ SAPUI5 ] Rule Builder Control / Decision Table - 5 [내부링크]

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

[ 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 =..

[ 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 컨트롤 내의 상대적인 컨텍스트 바인딩의 정의..

[ 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인 경우 생략할 수 있으며, 그 결과는 ..

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

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

[ 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'..

[ 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..

[ SAPUI5 ] Rule Builder Control / Decision Table - 2 [내부링크]

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

[ 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..

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

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

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

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

[ 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..

[ 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..

[ 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..

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

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

[ 정보처리기사 ] 실기 / 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요소로 구성된다. ( )은(는) 유사한 기능을 하..

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

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

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

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

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

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

[ 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(..

[ 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'로 설정한다. * 비..

[ Diary ] 일을 시작한 지가 벌써 한 달. [내부링크]

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

[ 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..

[ 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 ..

[ Concept ] What is the 'RESTful API'? [내부링크]

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

[ SAPUI5 ] /OData Worklist App - Creating initial App [내부링크]

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

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

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

[ 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..

[ 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()' ..

[ 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..

[ 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'?..

[ 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..

[ 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) 응용 프로그램 구성..

[ Diary ] 하루가 쏜살같이 지나간다. [내부링크]

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

[ SAPUI5 ] Navigation and Routing - last [내부링크]

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

[ 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..

[ 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) 직원 테이블에서 각..

[ 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[..

[ 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..

[ 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..

[ Diary ] 스킨을 바꾸었다! [내부링크]

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

[ 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..

[ 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..

[ 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의..

[ 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..

[ 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..

[ 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..

[ 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'을..

[ 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()' ..

[ 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 ..

[ 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'은 경로와 일치..

[ 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 * 패키지들의 목록을 파일로 정리해 놓고, 목록 파일을 이용해..

[ 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) 애플리케이션 서버에 상주, 데이터베이스에 사전에 정의된 데이..

[ 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 등 메인 브라우저 지원 ..

[ 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 ..

[ Diary ] 힘겨운 한 주이다. [내부링크]

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

[ 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] ..

[ 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 입력 - 뭐고 왜 안됨????? 꼐속 시도해봐도 안 돼서 다른 방법..

[ 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 결과 확인

[ 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..

[ 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..

[ 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..

[ 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'로 수정 - 실행 결과 확인

[ 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에서 논리적으..

[ 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..

[ 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' 이라는 항목..

[ 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()..

[ 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 * 애플리케이션이 모델의 데이터를 필요로 할 때마다 서버에 요청해야 함 * 일반..

[Diary ] 오늘은 돼빠오 생일이다. [내부링크]

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

[ SAPUI5 ] SAP Build Zone, standard edition [내부링크]

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

[ SAPUI5 ] / OData with BAS / Flexible Column Layout [내부링크]

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

[ 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' 값 추가

[ 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' 클

[ 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..

[ SAPUI5 ] Accessibility [내부링크]

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

[ SAPUI5 ] Content Density [내부링크]

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

[ SAPUI5 ] Device Adaption [내부링크]

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

[ SAPUI5 ] Responsiveness [내부링크]

[ InvoiceList.view.xml ]

[ 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..

[ SAPUI5 ] Routing Back and History [내부링크]

Detail.view.xml - showNavButton : true로 설정 - navButtonPress : '.onNavBack' 지정 Detail.controll.js - getPreviousHash() : 이전 hash로 돌아감 - window.history.go(-1) : 이전 페이지가 있다면 클릭 시, 이전 페이지로 돌아

[ SAPUI5 ] Routing with Parameters [내부링크]

manifest.json Detail.view.xml - intro : invoice에 초기화해 둔 'ShipperName' 호출 - title : invoice에 초기화해 둔 "ProductName' 호출 InvoiceList.controller.js - getSource() : 클릭한 항목의 정보를 상세 페이지로 전달 - navTo 1) 리스트의 현재 데이터 정보로 탐색 매개 변수 invoicePath 추가 2) "detail" : manifest.json에 입력해둔 'routing'의 'targets'에서 'detail' 호출 - invoicePath 1) encodeURIComponent : 모든 문자를 인코딩 2) oItem.getBindingContext("invoice") * 'i..

[ 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

[ SAPUI5 ] Integration Test with OPA [내부링크]

opa 테스트 추가 NavigationJourney.js - Given : iStartMyUIComponent와 같은 함수 호출해 통합테스트를 위한 앱 구성요서 로드 - When : 사용자가 지정한 작업을 포함해 예상되는 동작을 실행하기 위한 응용 프로그램 호출 - Then : 응용 프로그램의 특정 집합을 확인하는 사용자 지정 어설션과 구성 요소를 다시 제거하는 분해 기능을 포함 App.js - var sViewName : 호출하고자 하는 view 경로 지정해 변수 선언 - [ NavigationJourney.js ]에서 호출할 동작 요소 설정 opaTest.qunit.html unitTests.qunits.js

[ SAPUI5 ] Unit Test with Qunit [내부링크]

테스트 html 추가 [ formatter.js ] /*global QUnit*/ sap.ui.define([ "sap/ui/demo/walkthrough/model/formatter", "sap/ui/model/resource/ResourceModel" ], function (formatter, ResourceModel) { "use strict"; QUnit.module("Formatting functions", { beforeEach: function () { this._oResourceModel = new ResourceModel({ bundleUrl: sap.ui.require.toUrl("sap/ui/demo/walkthrough") + "/i18n/i18n.properties" }); }..

[ SAPUI5 ] Mock Server Configuration [내부링크]

test server 추가 mockServer.html - 테스트 코드 실행 시에 이용 - 실질적이 실행은 index.html 이용 - index.html 실행 오류 시, invoices에 데이터가 존재하는지 확인 initMockServer.js mockserver.js

[ SAPUI5 ] Sorting and Grouping [내부링크]

ㄴ InvoiceList.view.xml - sorter 1) path : 분류하고자 하는 객체명 입력 2) group : 그룹핑 여부 설정

[ SAPUI5 ] Filtering [내부링크]

Binding - 프로그램에 사용된 구성요소의 실제 값 또는 프로퍼티 결정짓는 행위 - 프로그램에서 사용되는 변수나 메서드 등 모든 것들이 결정되도록 연결해주는 것 - 정적 바인딩(Static Binding) 1) 컴파일 시간(Compiletime)에 결정 2) 프로그램이 실행돼도 변하지 않음 3) 오버로딩(Overloading) 4) private, final, static 메서드 * 오버로딩 : 같은 이름의 메서드를 매개변수의 타입과 개수를 다르게 정의해 다양한 메서드 구 - 동적 바인딩(Dynamic Binding) 1) 실행시간(Runtime)에 결정 2) 늦은 받인딩(Late Binding)이라고도 부름 3) 오버라이딩(Overriding) 4) 다형성, 상속이 가능한 이유 * 오버라이딩 :..

[ SAPUI5 ] Custom Formatters [내부링크]

formatter.js - webapp 하위에 폴더 model 생성 1) model : 데이터 가공을 위한 공간(?) 2) 하위에 파일 formatter.js 생성 - var resourceBundle 1) var : 중복으로 변수를 선언 가능 * let : 중복 선언 불가능, 재할당 가능 * const : 중복 선언 불가능, 재할당 불가능 2) resourceBundle이라는 변수 선언 invoiceList.controller.js - ../model/formatter : model에 있는 formatter.js 호출 - formatter : 문자를 객체로, 객체를 문자로 변환 invoiceList.view.xml - path: 'invoiceStatus' : invoice에 저장된 'Sta..

[ SAPUI5 ] Expression Binding - numberState [내부링크]

계산값 구분하기 - numberState : 숫자의 상태를 정의하는 것(?) 1) ${invoice>ExtendedPrice} : invoice에 있는 데이터 값 중 'ExtendePrice'를 기호 $로 호출 2) > 50 : 호출한 데이터 값이 50보다 크다면 3) ? 'Error' : 'Success' : 참일 경우 'Error', 거짓일 경우 'Success' 도출

[ SAPUI5 ] Aggregation Binding [내부링크]

[ Invoices.json ] { "Invoices": [ { "ProductName": "Pineapple", "Quantity": 21, "ExtendedPrice": 87.2, "ShipperName": "Fun Inc.", "ShippedDate": "2015-04-01T00:00:00", "Status": "A" }, { "ProductName": "Milk", "Quantity": 4, "ExtendedPrice": 10, "ShipperName": "ACME", "ShippedDate": "2015-02-18T00:00:00", "Status": "B" }, { "ProductName": "Canned Beans", "Quantity": 3, "ExtendedPrice": 6.85, "Sh..

[ SAPUI5 ] Icon [내부링크]

Icon - sap-icon://hello-world : 아이콘 로드

[ SAPUI5 ] Fragment Callbacks [내부링크]

onCloseDialog - this.byId 1) Dialog.fragment에 지정해둔 id인 "helloDialog" 불러오기 2) .close() : 해당 fragment 닫기 - beginButton 1) i18n에 초기화 해둔 dialogCloseButtonText 호출 2) 해당 버튼 클릭 시, 실행되는 onCloseDialog

[ SAPUI5 ] Dialogs and Fragments [내부링크]

에러 체크 - 무슨 이유인지는 모르겠으나, 구동이 되지 않길래 한참을 해맸음 - 크롬창에서 F12를 눌러 해당 오류를 체크해 볼 수 있음 - 'sap.ui.define'으로 수정하니 잘 작동함 Dialog - HelloPanel.view.xml 1) id : 해당 버튼이 어떤 버튼인지 식별 2) text : i18n에 초기화 해주었던 텍스트 호출 3) press : controller에서 선언해두었던 function 호출 - HelloDialog.fragment.xml 1) FragmentDefinition * view의 controller에 의존하지 않음 * sap.ui.demo.core 2) Dialog와 함께 써야함(?) - i18n에 openDialogButtonText 초기화

[ SAPUI5 ] / 리팩토링 [내부링크]

HelloPanel.view.xml - App.view.xml에 있던 코드 일부를 복사 붙여넣기 - 코드의 리팩토링 과정 HelloPanel.controller.js - App.controller.js의 코드 일부를 가져와 복사 붙여넣기 - 코드 리팩토링 과정

[ SAPUI5 ] sapUiResponsiveMargin [내부링크]

sapUiResponsiveMargin - panel 주위로 공간 생성 - auto : width 100%

[ SAPUI5 ] / displayBlock [내부링크]

페이지 구간 나누기 - displayBlock : 각 구간을 나눠줌(?) - i18n에 각 객체를 원하는 문구로 초기화

[ SAPUI5 ] Component.js [내부링크]

Component.js - JSONModel, ResourceModel 정의 - IAsyncContentCreation 1) sap.ui.core.UIComponent의 인터페이스 2) 비동기 방식으로 구동 지원 index.js Controller.js

[ SAPUI5 ] ResourceModel [내부링크]

i18n.properties - 자바스크립트 다국어 사용 시 사용, en은 영어, de는 독일 - ResourcceModel 정의 - ResourceModel : Bundle 설정 - i18n.properties에 초기화해 둔 것을 입력 - 왜 안될까?

[ SAPUI5 ] JSONModel [내부링크]

JSONModel을 활용해 보자. - JSONModel 정의 - onInit : View 로딩 시, 무조건 1번 실행됨 * onBeforeRendering : Xml View가 브라우저 랜더링(화면 생성) 전에 실행되는 function * onAfterRendering : Xml View가 브라우저 랜더링 후에 실행되는 function * onExit : Xml View를 떠난 후 실행되는 function View를 벗어난 Routing으로 인한 이동 시에 초기화 및 실행 function 등록 - oData(Open Data Protocol) 1) 웹상에서 손쉽게 데이터를 조회 및 수정할 수 있도록 주고 받는 웹(프로토콜) 2) OPEN API를 오픈된 공통규약으로 제공 가능 3) Atom Publi..

[ SAPUI5 ] Hello World! [내부링크]

Hello World! 버튼 만들기 [ sapganeung.view.xml ] [ sapganeung.controller.js ] view와 controller로 버튼 만들기 - Button을 클릭했을 때 노출되는 text "Say Hello" 설정 - press에 컨트롤러에서의 기능을 구현할 key값 설정 MessageToast.show - 버튼 모듈 구현

[ SAPUI5 ] BookedFlights [내부링크]

generator-easy-ui5 설치 - 'npm install generator-easy-ui5' - 설치가 완료되면 node_modules가 생성 프로젝트 생성 - 'yo easy-ui5 project' 입력 - 아래와 같이 기본 설정 세팅 - 오류가 생긴다면 Server를 우선 구동시킨 후 재시도 생성된 프로젝트 확인 - 위 설정과는 다르지만, 과정은 같음 [ Main.view.xml ] Open Guided Development - Application.Info에서 Manage Service Models 선택 - Add a chart building block 선택 - Chart Type에서 Column 선택 - Dimensions Propery에서 AirlineID 선택 - me..

[ SAPUI5 ] Hello World [내부링크]

VSCode에서의 'yo' 실행 오류 - yo를 입력해 yeoman을 실행하고자 하였으나 아래와 같은 오류 출력 - powershell 관리자 권한으로 실행 1) 'get-ExecutionPolicy' 입력 및 Restricted 확인 * Restricted : default 값, 스크립트 실행 불가 * AllSigned : 신뢰할 수 있스크립트 파일만 실행 가능 * RemoteSigned : 로컬에서 본인생성한 스크립트 및 신뢰할 수 있는 스크립트 실행 가능 * Unrestricted : 모든 스크립트 실행 가능 * ByPass : 경고/차단없 모든 것 실행 가능 * Undefined : 권한 설정 X 2) 'Set-ExecutionPolicy RemoteSigned' 입력 및 'Y' 선택 - 실행..

[ SAPUI5 ] VSCode에서 SPAUI5 환경 설정 및 실행 [내부링크]

참고 출처 : 윈도우 SAPUI5 개발 환경 구축을 위한 Tools - Node.js 및 npm, Yeoman 개념 - SAP Space 윈도우 SAPUI5 개발 환경 구축 시 Node.js, CLI, npm, scaffolding 등의 의미, UI5를 윈도우 10, Visual Studio 코드환경에서 개발하기 위해 사전 설치시에 알아두면 좋을 프로그램과, 해당 프로그램이 필요한 주 sap-learn-more.com Git 설치 Git git-scm.com Node.js 설치 - npm 자동으로 설치됨 Node.js Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org - 설치 완료 후, 시스템 환경..

[ ABAP ] CDS BTP 배포 [내부링크]

API Endpoint 확인 cf 로그인하기 - 터미널에 'cf login' 입력 - API Endpoint 복사 밑 붙여넣기 - SAP 로그인 Email 및 password 입력 1) 로그인 진행 시, 백스페이스 등을 누르면 오류문자가 입력되니 유의 2) 비밀번호는 입력 시에, 캡슐화(?)되어 보이지 않으니 참고 CDS 배포 - 터미널에 ' cds deploy --to hana' 입력 - cds deploy 1) HANA DB에 CAP Java Application이 사용할 새로운 HDI Container를 생성해 배포 2) 별도로 이름을 지정하지 않으면 + '-db' 형태의 이름을 기본값으로 하여 Container를 생성 배포 결과 확인 - DB Explorer 접속 - 좌측 상 '+'..

[ SAPUI5 ] BAS 생성 및 SpringBoot 연동 [내부링크]

비즈니스 기술 플랫폼(SAP Business Technology Platform (SAP BTP)) - CAP 애플리케이션 생성에 사용하는 IDE BAS 찾기 - SAP BTP 로그인 - SAP BTP Cockpit 접속 - Service Marketplace 클릭 - SAP Business Applicatoin Studio의 'Go to Application' 클릭 Dev Space - Create Dev Space 클릭 BAS 생성 - 좌측 "What kind of application do you want to create?"에서 'Full Stack Cloud Application' 선택 - Dev Space name 입력 - Create Dev Space 클릭 BAS 구동 - ..

[ Java ] HANA CLOUD DB 연동 [내부링크]

Dialect - JPA : 기본적으로 어플리케이션에서 직접 JDBC 레벨의 SQL 작성하지 않고 JPA가 직접 SQL을 작성 및 실행 - DBMS 종류마다 사용하는 SQL이 다름 - Dialect : JPA에 어떤 DBMS를 사용해야 하는 지에 대해 알려주는 방법 ORM(Object-Relation Mapping) - 애플리케이션 Class와 RDB(Relational DataBase)의 테이블 매핑(연결) - 애플리케이션객체를 RDB 테이블에 자동으로 영속화 해주는 것 - 장점 1) SQL 문이아닌 Method 통해DB 조작 가능해 개발자는 객체 모델을 이용해 비즈니스 로직 구성 집중 가능 2) 필요한 선언문, 할당 등의 부수적인 코드가 줄어들어 각종 객체에 대한 코드를 별도로 작성해 코드 가..

[ Concept ] 클라우드 컴퓨팅 [내부링크]

클라우드 컴퓨팅 - 인터넷 기반의 컴퓨팅 - 인터넷 상의 가상화된 서버에 프로그램을 두고 필요할 때마다 컴퓨터나 스마트폰 등에 불러와 사용하는 서비스 - 장점 1) 서버를 직접 구매할 때 고려해야 할 전력, 위치, 확장성 고민 불필요 2) 데이터 센터 어딘가에 이미 준비되어 있는 서버 사용 3) 서버 세팅 등 신경쓰지 않고 서비스 운영에만 집중 가능 4) 서비스 부하에 따라 실시간 확장성 지원 가능 5) 사용한 만큼 비용 지불하기 때문에 운영에 있어 효율성 향상 퍼블릭 클라우드(Public Cloud : 개방형 클라우드) - 인터넷에 접속 가능한 모든 사용자를 위한 클라우드 서비스 모델 - 클라우드 서비스 제공자(CSP)rk gkemdnpdj, thvmxmdnpdj rhksfl - 데이터나 기능,..

[ JAVA ] 웹 사이트 개발 / GET, POST [내부링크]

[ Request / Response ] GET - 주소창에 직접 원하는 데이터를 적거나 링크를 클릭해 호출 - 주소와 데이터 함께 보내는 방법 - '?', '&,=' 이용해 원하는 웹주소 호출할 때 필요한 데이터 전송 - 주로 특정한 정보 조회 용도로 사용 POST - 입력 화면에 필요한 내용 작성한 후, '전송'과 같은 버튼 등 클릭해 호출 - 주소와 데이터를 따로 보내는 방법 정적(static) 데이터 - 항상 동일하게 고정된 데이터를 전송하는 방식 - 주로 파일로 고정된 HTML, CSS 이미지 파일 등의 데이터 동적(dynamic) 데이터 - 매번 필요할 때마다 다른 데이터를 동적으로 구성해 전송하는 방식 - 메일함처럼 상황에 따라 동적으로 서버에서 데이터를 만들어 보내는 방식 -..

[ Concept ] 스프링 클라우드 [내부링크]

The Twelve-Factor App - SaaS(Softeare as a Service) 1) 설정 자동화 절차를 체계화(Declarative)해 새로운 개발자가 프로젝트에 참여하는데 드는 시간과 비용 최소화 2) 운영체제에 따라 달라지는 부분을 명확히 하고, 실행 환경 사이의 이식성 극대화 3) 최근 등장한 클라우드 플랫폼에 적합, 서버와 시스템의 관리 불필요 4) 개발 환경과 운영 환경의 차이를 최소화, 민첩성 극대화, 지속 배포 가능 5) 툴, 아키텍처 및 개발 방식 크게 변경하지 않고 확장 가능(Scale Up) - Twelve-Factor App 1) 코드베이스 : 애플리케이션당하나의 코드베이스만 존재 이를 CI/CD(Continuous Integration/Continuous Deliv..

Interview Preparation(2) [내부링크]

[ SAP 클라우드 플랫폼 ] 클라우드 ERP - 특징 1) 인터넷을 통해 액세스할 수 있는 전사적 자원 관린 소프트웨어 2) 회사의 IT 백본 또는 '두뇌' 역할 3) SaaS(Software-as-a-Service) ERP로 제공됨 4) 고객은 소프트웨어를 소유하는 대신 연간 또는 구독 방식으로 임대 가능 5) 하드웨어 비용을 미리 지불 불필요 6) 사업자가 애플리케이션 유지보수, 업그레이드 및 혁신, 데이터 스토리지, 보안 등 관리 - 중요성 1) 민첩성 향상 2) 현금 흐름에 대한 가시성 : 즉각적인 현금 흐름 및 중요한 수익성 정보 제공 3) 손쉬운 애플리케이션 통합

Interview Preparation(JAVA / SAP) [내부링크]

[ JAVA란 무엇인가? ] 장점 - 객체지향 프로그래밍(OOP : Object Oriented Programming) 1) 프로그램을 개발하는 기법 2) 부품에 해당하는 객체들을 먼저 만들고 3) 이것들을 하나씩 조립 및 연결하여 저체 프로그램 완성하는 것 4) 클래스 : 객체를 만들기 위한 설계도, 객체와 객체를 연결해 목적에 맞는 프로그램 생성 5) 캡슐화, 상속성, 다형성 완벽 지원 * 캡슐화 : 객체의 속성(data fields)과 행위(메서드)를 하나로 묶고, 실제 구현 내용 일부를 내부에 은닉 * 상속성 : 상위/부모 클래스의 특성을 하위/자식이 상속받아 기존 정의된 특성(property, method) 재사용 * 다형성 : 하나의 객체가 여러 가지 타입 가질 수 있는 것 - 높은 이식성..

[ Concept ] SAP [내부링크]

[ MDM : Meta Data Management ] 마스터 데이터 관리 - 비즈니스의 각 개인, 장소, 사물에 대해 단일 마스터 레코드 또는 단일 데이터 소스 생성 및 유지보수 프로세스 - 기업의 더 나은 보고, 의사결정, 프로세스 효율성을 위해 사용 - 비즈니스 전반에서 공유 가능하고 ㅅㄴ뢰할 수 있는 최신 핵심 데이터 확보 가능 마스터 데이터 - 사람(고객, 직원, 공급업체), 장소(사무실, 사업장), 사물(제품, 설비자산) - 일반적으로 모든 비즈니스 데이터 중에서 작은 비율이나, 조직 내에서 가장 복잡하고 중요한 데이터 중 하나 - 고객 마스터 데이터 1) 연락처 정보, 구매 이력, 지급 조건 등 고객과의 거래에 필요한 모든 핵심 데이터 포함 2) ERP, CRM 및 기타 시스템 전반에..

JSP_22-12-15_[쇼핑몰 만들기_장바구니 리스트_주문하기로 데이터 전송] [내부링크]

[ productDetail.jsp ] 변수를 선언하여 서버로 보낼 값들을 속성으로 가지는 객체를 대입 - id : member 테이블의 회원 아이디 - product_id : 상품 상세의 상품번호 - ci_number : cartItem 테이블의 상품 수량, 변경가능하기 때문에 빈 값으로 두기 const form = { id : '${member.id}', product_id : '${productDetail.product_id}', ci_number : '' } 서버가 반환한 값에 따라 띄울 경고창 - btn_cart : 장바구니 버튼 - $(".btn_cart").on("click", function(e) : 해당 클래스 클릭했을 때 이벤트 발생 - quantity_input : 장바구니 상..

JSP_22-12-14_[쇼핑몰 만들기_장바구니 이미지 나열] [내부링크]

[ CartController.java ] 장바구니 조회를 위해 필요로 한 데이터 id를 얻기 위해 PathVariable 패턴의 URL로 작성 조회한 장바구니 데이터를 뷰에 넘기기 위해 Model을 파라미터로 추가 @RequestMapping(value = "/cartForm/{id}", method = RequestMethod.GET) public String cartForm(@PathVariable("id") String id, Model model) { logger.info("CartController 장바구니 화면 불러오기....."); //-----------------------------------------------------------------------------------..

JSP_22-12-08_[ 쇼핑몰 장바구니 ]_소스 코드 정리 [내부링크]

[ CartDTO.java ] 장바구니 구현 참고 ERD - 테이블 member의 칼럼 id(기본키) 테이블 cart의 칼럼 id(외래키) 1:1 - 테이블 cart의 칼럼 cart_id(기본키) 테이블 cartItem의 칼럼 cart_id(외래키) 1:1:N - 테이블 cartItem의 칼럼 product_id(외래키) 테이블 product의 칼럼 product_id 1:1:N:M package com.daily.www.cart.dto; import org.springframework.stereotype.Component; import lombok.Data; @Data @Component("cartDTO") public class CartDTO { // -------------..

JSP_22-12-06_[ 쇼핑몰 만들기_장바구니 ] [내부링크]

[ cartForm.jsp ] 장바구니 전체선택 표 제목 부분 상품명 금액 수량 합계 삭제 표 내용 부분 ${cartInfo.p_name} 금액 : 마일리지 : + - 변경 삭제 총 상품 가격 원 배송비 원 총 주문 상품수 개 구분선 총 결제 예상 금액 원 총 적립 예상 마일리지 원 주문하기 [ CartDTO.java ] package com.daily.www.cart.dto; import org.springframework.stereotype.Component; import lombok.Data; @Data @Component("cartDTO") public class CartDTO { private int cartItem_id;// 장바구니 아이템 아이디(기본키) private int id;// 회원..

JSP_22-11-28_[상품 이미지 업로드] [내부링크]

[ 상품 이미지 업로드 ] 순서 - [뷰] 사용자가 이미지를 선택 - [뷰] 선택된 이미지 서버로 전송 - [서버] 전송 받은 이미지 저장 후, 저장한 이미지 정보를 [뷰]로 재전송 - [뷰] 전송 받은 데이터 활용해 이미지 미리보기, 태그에 데이터 저장 - [뷰] '등록 버튼' 클릭 - [서버] 이미지 정보 DB에 저장 [ 이미지 파일 업로드 기본 설정 ] 라이브러리 추가 - javax.servlet 3.0.0 혹은 3.1.0 추가 dependency 추가 web.xml 설정 - namespace 3.1 코드로 변경 - multipart-config 설정 코드 태그 내부에 삽입 C:\\upload\\temp 20971520 41943040 20971520 - enctype : 웹 클라이언트와..

JSP_22-11-22_상품 등록[2] [내부링크]

[ ProductDTO.java ] package com.edu.product.dto; import java.sql.Date; import org.springframework.stereotype.Component; import lombok.Data; @Component @Data public class ProductDTO { private int product_id;// 상품 아이디 private String p_name;// 상품 이름 private String p_explanation;// 상품 설명 private int p_price;// 상품 가격 private int p_sell; private Date p_enroll;// 상품 등록일 } [ ProductController.java ] pac..

JSP_22-11_24 [내부링크]

[ paging 작업 ] [ cart 테이블 수정 ] 상품 아이디 외래키 지정 alter table cart add ( product_id int, foreign key (product_id) references product(product_id) ); 중복 데이터 제약 조건 설정 alter table cart add unique (id, product_id); [ CartDTO.java ] 장바구니 관련 변수 선언 - p_count, p_discount 추가 / @Data 어노테이션 추가 - salePrice, totalPrice 추가 / setter 메서드 제거 및 초기화 메서드 생성 private int cart_id; private String id; private int produ..

JSP_22-11-21_관리자 페이지/상품 등록[1] [내부링크]

관리자 페이지 추가 - adminck = 1 : 관리자인 경우를 1로 설정 UPDATE member SET adminck = 1 where id = ''; - 관리자인 경우, '관리자 페이지' 이동 리스트 추가 관리자 페이지 AdminController.java class 생성 - 관리자 메인 페이지로 이동하는 url 메서드를 작성 @Controller @RequestMapping("/admin") public class AdminController { private static final Logger logger = LoggerFactory.getLogger(AdminController.class); /* 관리자 메인 페이지 이동 */ @RequestMapping(value="main", met..

JSP_22-11-18 [내부링크]

[ BoardDTO.java ] package com.edu.board.dto; import java.sql.Timestamp; import org.springframework.stereotype.Component; import lombok.Data; //------------------------------------------------------------------------------------- // public class BoardDTO // @Component : Bean Configuration 파일에 Bean을 따로 등록하지 않아도 사용할 수 있다. // Bean 등록 자체를 Bean Class 자체에다가 할 수 있다는 의미이다. //-----------------------------..

JSP_22-11-17 [내부링크]

[ datepicker.jsp ] 도시 정보 출판일자 = 2001; i--) { %> 년 ${i} 월 ${i} 일 구매 일자 일자 게시글 상세 조회 일자 조회기간을 선택하세요. ~ [ address.jsp ] https://postcode.map.daum.net/guide %> 우편 번호 주 소 상세주소 [ UtilController.java ] package com.edu.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org...

JSP_22-11-15 [내부링크]

[ 파일 올리기 ] Apache commons IO 2.11.0v https://mvnrepository.com/artifact/commons-io/commons-io commons-io commons-io 2.11.0 Apache commons IO 1.4v https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload/1.4 commons-fileupload commons-fileupload 1.4 imgscarl A Java scaling Library 4.2 https://mvnrepository.com/artifact/org.imgscalr/imgscalr-lib/4.2 org.imgscalr imgscalr-lib ..

JSP_22-11-07 [내부링크]

lombok - 해당 sts에 경로 설정하여 설치 org.projectlombok lombok 1.18.12 provided [ JDBC ] Java DataBase Connectivity : 자바에서 데이터베이스와 관련된 작업을 처리할 때 사용하는 API JDBC 드라이버 LOAD ==> Connection 객체 생성 ==> Statement 객체 생성 ==> Query 실행 ==> Result 객체로부터 데이터 추출(쿼리 실행 결과 사용) ==> Result 객체 Close ==> Statement 객체 Close ==> Connection 객체 Close - Connection : DB 연결 객체 - Statement, PreparedStatement : SQL문 실행 객체 - Resul..

JSP_22-11-14 [내부링크]

[ pom.xml ] ajax 비동기 연동 com.fasterxml.jackson.core jackson-databind 2.13.4.2 com.fasterxml.jackson.core jackson-core 2.13.4 [ registerAjax.jsp ] 회원 가입(AJAX) 회원 가입(실시간 아이디 검사) 아 이 디 아이디 중복확인 비밀번호 이 름 이메일 입력취소 회원가입 취소 회원가입 회원가입 [ LoginModalForm.jsp ] Manager Login Login × Manager Login Manager ID Password Login Cancel [ loginForm.jsp ] 로그인 아이디 비밀번호 다시입력 로그인 [ updateMemberFrom.jsp ] 회원 정보 수정 아이디 ..

JSP_22-11-11(2) [내부링크]

[ 리스너 ] 이벤트 리스너 - 컨테이너에서 발생하는 이벤트를 모니터링하다가 특정 이벤트가 발생하면 실행되는 특수한 서블릿 웹 애플리케이션 실행에 필요한 정보를 제공 톰캣 시작/종료와 같은 특정 상황에 자동 동작하는 프로그램 구현할 때 사용 초기화 매개변수와 연동 - 톰캣이 시작될 때 'web.xml'의 ServletContex 초기화 매개변수를 읽어 - 그에 따라 특정 객체를 초기화한 후 서블릿이나 JSP에 제공 예제 프로그램 등을 배포할 때 샘플 데이터 제공 - 프로그램 실행할 때 DB가 필요한 경우 미리 DB와 연결을 만들어 두거나 - 테이블을 생성하고 샘플 데이터를 로딩하는 등의 작업을 자동으로 수행해서 추가적인 작업 없이 프로그램 실행 가능 복잡한 환경 설정 제공 - 프로그램 ..

JSP_22-11-11 [내부링크]

[ 커스텀 태그 ] 사용자 정의 태그 스크립트릿 사용 줄이고 태그와 같은 형태로 프로그램 코드를 대체하거나 재활용 가능한 구조 통해 태그 라이브러리로 활용하고자 개발된 규격 taglib 지시어 사용해 커스텀 태그가 어디에 정의되어 있는지 먼저 선언, 태그에 사용할 접두어 지정 프로젝트가 특정 커스텀에 종속될 수 있다는 문제 때문에 커스텀 태그를 직접 만드는 방식 점차 감소 [ EL ] EL(Expression Language) - 현재 페이지의 자바 객체 혹은 aaplication, session, request, page와 같은 scope object에 저장된 자바 빈 객체를 손쉽게 접근하고 사용할 수 있게 해줌 - 사칙연산, 비교연산, 논리연산 3항 연상 등 지원 - 핵심 로직의 구..

JSP_22-11-10 [내부링크]

[ src/main/webapp/WEB-INF/views/common/header.jsp ] 이제영의 쇼핑몰 ${member.name}님, 즐거운 시간되십니오. 로그아웃 로그인 회원관리 로그인 [ src/main/webapp/WEB-INF/views/common/footer.jsp ] E-mail : [email protected] 회사주소 : 서울특별시 종로구 관철동 좋은빌딩 305호 찾아오시는 길 : 약도 [ src/main/webapp/WEB-INF/views/common/topMenu.jsp ] 쇼핑몰 ${member.name}님, 즐거운 시간되십시요. 로그아웃 로그인 회원관리 로그인 [ src/main/webapp/WEB-INF/views/main.jsp ] 도서 쇼핑몰 방문을 환영합니다. 책방..

JSP_22-11-09 [내부링크]

한글 입력 - General - ContextType - Text - java Properties File - UTF-8 - Update [ src/main/webapp/jdbc.properties ] # DataSource # jdbc.driverClassName=com.mysql.cj.jdbc.Driver jdbc.DriverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy jdbc.url=jdbc:log4jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=Asia/Seoul jdbc.username=awsuser jdbc.password=123123 # 오라클인 경우 # 버전에 따라 @localhost:..

JSP_22-11-08 [내부링크]

[ dependency 추가하기 ] log4j core 2.17.2 https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core/2.17.2 org.apache.logging.log4j log4j-core 2.17.2 log4jdbc https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4.1/1.16 org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4.1 1.16 log4j API https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api o..

쇼핑몰 만들기(1) [내부링크]

출처 : https://happygram.tistory.com/entry/Spring-Boot-%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%87%BC%ED%95%91%EB%AA%B0-%EB%A7%8C%EB%93%A4%EA%B8%B0-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EB%AA%A8%EB%8D%B8-%EC%84%A4%EA%B3%84 [ 테이블 목록 ] 사용자 users 권한 authorities 상품 product 장바구니 basket 주문 order 게시판 board 카테고리 category [ users ] CREATE TABL..

JSP_22-11-04 [내부링크]

[ pom.xml ] encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true encodingFilter /* [ BMICalculator.java ] package com.edu.di.bmi; //------------------------------------------------------------------- // BMI(Body Mass Index : 체질량 지수) 계산기 // 비만도 측정(BMI 지수) // BMI를 이용한 비만도 계산 : 자신의 몸무게를 키의 제곱으로 나눈 것으로 공식은 kg/ // BMI가 18.5 이하 : 저체중 / 18.5 ~ 22.9 : ..

JSP_22-11-02 [내부링크]

[ 시큐리티 ] 허가된 사용자만이 특정 웹페이지에 접근할 수 있도록 제한하는 보안 기능 사용자가 권한이 없는 데이터에 접근하는 것을 막거나 웹 공격자가 전송데이터를 중간에 가로채는 것을 방지 인증(Authentication) - 사용자가 웹 브라우저를 사용해 웹 페이지에 접근할 대 JSP 컨테이너는 요청된 페이지에 보안 제약이 있는지 확인하고 사용자에게 사용자의 이름과 암호를 확인해 수행 권한 부여(Authorization) - 특정 사용자가 해당 페이지에 접근할 수 있는지 확인해 승인 시큐리티 처리 방법 설명 선언적 시큐리티 코드 작성 없이 web.xml 파일에 보안 구성을 작성해 사용자의 인증 수행 프로그래밍 시큐리티 request 내장 객체의 메소드를 통해 사용자 원한 부여 처리하는 ..

JSP_22-11-01 [내부링크]

[ PersonalInfoServlet.java ] package ch08; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; //------------------------------------------------------------------------ // public class PersonalInfoServlet //---..

이클립스 단축기 [내부링크]

출처 : https://coding-factory.tistory.com/833 이클립스 자주 사용하는 단축키 주석 Ctrl + Shift + / : 블록을 주석으로 처리 (/* */) Ctrl + Shift + \ : 블록 주석을 해제 Ctrl + / : 한줄 or 블록 주석 처리 / 해제 (//) 검색 Ctrl + F : 키워드 검색 (해당 소스에서만) Ctrl + H : 키워드 검색 (프로젝트 전체에서) Ctrl + Shift + R : 전체 리소스에서 파일 찾기 Ctrl + Shift + T : Jar 포함 클래스 찾기 Ctrl + Alt + H : 특정 클래스 호출 위치 찾기 Ctrl + K : 찾을 문자열을 블럭으로 지정하고 검색 Ctrl + Shift + K : 밑에서 문자열 검색 위치 이동 ..

JSP_22.10.31 [내부링크]

[ 파일 업로드 ] 웹 브라우저에서 서버와 파일을 전송해 서버에 저장하는 것 텍스트 파일, 바이너리 파일, 이미지 파일, 문서 등 다양한 유형 서버로 업로드 가능 웹 브라우저에서 서버로 파일을 전송하기 위해 JSP 페이지에 폼 태그 사용 전송된 파일을 서버에 저장하기 위해 오픈 라이브러리 이용 파일 업로드 위한 JSP 페이지 - method : 반드시 POST 방식으로 설정 - enctype : 반드시 multipart/form-data로 설정 - action : 파일 업로드를 처리할 JSP 파일로 설정 - input type : 파일 업로드 위해 file로 설정 단순한 자바 코드로 작성해 처리할 수 없기 때문에 오픈 라이브러리인 cos.jar 혹은 commonsfileupload...

JSP_22-10-28(2) [내부링크]

[ 액션 태그 ] 서버나 클라이언트에게 어던 행동을 하도록 명령하는 태그 JSP 페이지에서 페이지와 페이지 사이 제어 다른 페이지의 실행 결과 내용을 현재 페이지에 포함 자버 빈즈(JavaBeans) 등의 다양한 기능 제공 XML 형식 사용 forward 다른 페이지로의 이동과 같은 페이지 흐름을 제어 include 외부 페이지의 내용을 포함하거나 페이지를 모듈화 useBean JSP 페이지에 자바빈즈 설정 setProperty 자바빈즈의 프로퍼티 값 설정 getProperty 자바빈즈의 프로퍼티 값 얻어옴 param , , 추가 plugin 웹 브라우저에 자바 애플릿을 실행, 자바 플러그인에 대한 OBJECT 또는 EMBED 태그를 만드는 브라우저별 코드 생성 element 동적 XM..

JSP_22.10.27 [내부링크]

[ 서블릿과 JSP ] 서블릿 - 자바 기반의 웹 프로그램 개발 위해 만들어진 기술(WAS: Web Application Server) JSP(Java Server Pages) - 서블릿에서 HTML과 데이터 결합을 손쉽게 처리하기 위해 만들어짐 - HTML 중심으로 데이터 처리 - HTML에서 자바 코드 사용할 수 있는 구조 - 컨테이너에 의해 서블릿 형태의 자바 코드로 변환 후 컴파일되어 컨테이너에 적재되느 구조 - : JSP 출력문, 사칙연산, 간단한 변수 출력 등에 사용 - : 스크립트릿, 해당 블록 안헤서 자바 코드 자유롭게 사용 - JSTL(JSP Standard Tag Library) / EL(Expresion Language) 1) : 반복분 제공하는 커스텀 태그 2) ${m.nam..

JSP_22-10-28(1) [내부링크]

금요일이닷! [ Session ] 현재 JSP 페이지의 HTTP 세션 사용 여부를 설정하는 데 사용 기본값 - 세션을 자동으로 사용하는 true - false 설정 시, 해당 JSP 페이지에서 내장 객체인 session 변수를 사요할 수 없다는 의미, 해당 페이지에 대해 세션 유지 관리할 수 없음 [ buffer ] 현재 JSP 페이지의 출력 버퍼 크기 설정하는 데 사용 속성값 - none과 버퍼 크기로 설정 - 버퍼 크기 : 출력 버퍼에 먼저 기록한 후 웹 브라우저로 보냄 [ autoFlush ] 출력 버퍼 자동 비우기를 위한 true 설정 [ isThreadSafe ] 멀티스레드 처리를 위한 true 설정 [ errorPage ] 이동할 오류 페이지 MyErrorPage.js..

쇼핑몰 연습(1) [내부링크]

[ Welcome.jsp ] Home WebMarket " [ addProduct.jsp ] 상품 등록 상품 코드 상품명 가격 상세 정보 제조사 분류 재고수 [ processAddProduct.jsp ] [ Product.jsp ] 상품 정보 상품 코드 : 제조사 : 분류 : 재고 수 : 원 상품 주문 » 상품 목록 » \ [ ProductRepository.jsp ] package ch02; import java.util.ArrayList; import Product; public class ProductRepository { private ArrayList listOfProducts = new ArrayList(); private static ProductRepository instance = n..

JSP_22-10-25 [내부링크]

[ Servlet ] 마우스 오른쪽 클릭 > source > override/implement method > [ encoding ] 소스를 그대로 출력하는 경우 - 모든 encoding 요소를 'UTF-8'로 설정 form // 다양한 입력 양식 태그(, , ) input - input 태그 속성 select - 여러 개 항목 나타나는 목록 상자에서 항목 선택하는 태그 항목1 항목2 ...(생략)... - select 태그 속성 - option 태그 속성 textarea ...(생략)... String 변수 = request.getParameter(요청 파라미터 이름);

JSP_toDo list 만들기 [내부링크]

HTML 삽입 미리보기할 수 없는 소스 My toDo App 할일 추가

JSP_회원가입 [내부링크]

회원가입 폼 만들기 예제 /* CSS 정의 */h2 {border-radius: 5px;background-color: wheat;text-align: center;padding: 15px 0;}#regform {padding: 15px 20px;border-radius: 10px;margin: auto;width: 50%;background-color: SandyBrown;} // 자바스크립트 정의function signUp() {// 가입 여부 확인alert("정말로 가입하시겠습니까?"); // display : 아이디가 'regfrom'인 요소를 찾아 화면에 어떻게 보여줄지 결정하는 속성document.getElementById("regform").st..

JSP_22-10-24 [내부링크]

[ Tomcat Setting ] Tamcat 연동하기 - Window > Prefereneces > Server > Runtim Environment > Add > Apache > (Version Select : v9.0) > (Next) > Finish - Port Name > Tomcat Admin Port '808%' 수정 Servers 창 열기 - Window > Show View > Other > Server > Servers > Open Dynamic Web Project 설치 - Help > Install New Software > Work widh > (Eclipse Verision Select) - Wev, XML, Java EE and ISFi Enterprise Devel..

git bash 사용법 [내부링크]

- git branch -r : 원격 저장소의 branch 리스트를 확인 - git remote update : 원격 저장소의 브랜치에 접근하기 위해 원격 저장소를 갱신 - git pull origin develop : 원격 저장소의 데이터 가져오기 - git merge develop : 원격 저장소의 데이터 로컬 저장소에 병합 - git checkout -t origin/featureD/profile : 해당 파일로 경로 이동