컴퓨터공학/기타 프로그래밍 20

[java] @Override 메소드 오버라이딩에 대한 이해

개요 메소드 오버라이딩은, 부모 클래스에서 정의된 메소드를 재정의하는 것입니다. 기본 어노테이션 @Override 를 선언하여 기존 클래스의 동일한 메소드를 재정의함을 명시합니다. 아래 소스 코드는 클래스 A를 상속받는 클래스 B에서 메소드 hello()를 오버라이딩했습니다. 클래스 A에서 정의한 hello()가 아닌 클래스 B에서 정의한 hello()가 실행되었습니다. ▶ 소스 코드 class A { public void hello() { System.out.println("Hello, A"); } } class B extends A { @Override public void hello() { System.out.println("Hello, B"); } } class HelloWorld { public..

[python] Firebase Admin SDK child path 활용 데이터 읽기

개요 python firebase admin sdk를 활용하여 실시간데이터베이스에서 데이터를 읽는 방법과 path를 작성하는 방법입니다. 가정 다음과 같이 데이터가 저장되어 있다고 가정합니다. - fruit : - apple : - price : "100" - size : "3" - banana : - price : "200" - size : "92" - orange : - price : "600" - people : - amy - james 기본 설정 python 스크립트에서 아래와 같이 작성합니다. import firebase_admin from firebase_admin import credentials from firebase_admin import db cred = credentials.Cert..

[SAP/ABAP] EVENT DATA_CHANGED 활용하여 ALV 체크박스(checkbox) 클릭 시 바로 반영하기

개요 cl_gui_alv_grid 에서 필드 카탈로그를 통해 설정한 체크박스는 체크 후 새로고침해야 인터널 테이블에 해당 체크 값('X')이 저장됩니다. (새로고침 없이 체크박스 체크만 할 경우 인터널 테이블에 반영되지 않음) 이는 매우 불편하므로 DATA_CHANGED 이벤트를 통해 체크 시 바로 인터널 테이블에 반영되도록 만들어 보겠습니다. 전제 아래 구현 예제는 다음과 같이 전제합니다. alv를 구현하기 위해 필요한 일반적인 코드가 구현되어 있다. (아래 구현 예제는 이러한 코드가 모두 구현된 후에 추가해야 하는 코드만 서술합니다) 변수 ZCHECKBOX는 구조체 안에 TYPE C LENGTH 1 데이터 타입으로 선언되어 있다. 필드 카탈로그 내 ZCHECKBOX의 EDIT에는 'X' 값이 저장되어..

[SAP/ABAP] RETURN과 EXIT의 차이

Procedure abap에서 procedure는 다음과 같은 종류를 가집니다. Subroutine Function module Method RETURN 상황에 관계없이 procedure에서 나갑니다. #1 예제 코드 DO 5 TIMES. WRITE : / 'A'. DO 5 TIMES. WRITE : / 'B'. IF SY-INDEX = '3'. RETURN. ENDIF. ENDDO. ENDDO. #2 출력 결과 A B B B EXIT 반복문 안에서는 해당 반복문만을, 반복문 밖에서는 코드를 감싸는 procedure에서부터 나갑니다. 즉 일관적인 return과 다르게 상황에 따라 모호한 명령을 수행합니다. #1 예제 코드 DO 5 TIMES. WRITE : / 'A'. DO 5 TIMES. WRITE :..

[SAP] client 입력 모드 변경 (insert / override)

입력 모드 변경 클라이언트 편집기 하단 우측의 INS 를 클릭하여 override 모드로 변경할 수 있습니다. 출처 SAP Tips: Using the insert and override buttons in your SAP GUI - Eursap Here’s a handy tip for all you SAP GUI users. When using SAP GUI, you can activate the “Insert” or “Override” options for text fields without having to do this on your keyboard. eursap.eu

[SAP] 자주 사용하는 TCODE

개요 SAP 사용하면서 자주 사용하는 TCODE 모음입니다. 계속 업데이트 하겠습니다. 사용 팁 /NTCODE - 강제로 해당 티코드로 이동 /OTCODE - 새로운 창에서 티코드 이동 TCODE SE80 - 통합 도구 SE37 - FUNCTION MODULE 생성/관리 SE38 - 프로그램(리포트) 생성/관리 SE11 - 테이블/구조체 등 모든 데이터 타입 관리 SE16N - 테이블 데이터 관리 도구 Workzone login https://workzone.one.int.sap/site#workzone-home&/groups https://workzone.one.int.sap/site#workzone-home&/groups workzone.one.int.sap

[C++] 우선순위 큐 priority_queue

개요 C++ queue 라이브러리에서 제공 push 수행 시 원소를 일반적인 큐와 달리 특정한 우선순위에 배정하는 자료구조 우선순위 큐와 동일한 원리로 자료구조 Heap 존재 Dijkstra 알고리즘에 자주 활용 활용 #1 int 원소를 가지는 힙 (heap) 가장 큰 원소가 top에 위치 #include ... priority_queue PQ; PQ.push(3); PQ.push(1); PQ.push(2); cout class priority_queue; A priority queue is a container adaptor that provides constant time lookup of the largest (by default) element, at the expense of logarit en..

[npm] link를 사용하여 개발중인 라이브러리 로컬에서 테스트하기

개요 간단한 라이브러리를 개발하던 도중, 테스트해야 할 때가 있습니다. npm에 배포하기 전, 로컬 프로젝트에서 테스트할 수 있는 방법을 안내합니다. 전제 간단한 라이브러리의 코드는 아래와 같이 구성되어 있습니다. shelljs 라이브러리를 사용하여 터미널에 Hi를 출력하는 기능을 제공합니다. [ package.json ] ... "bin": { "script1": "bin/runScript1.js" }, ... "dependencies": { "shelljs": "^0.8.5" }, ... [ bin/runScript1.js ] #! /usr/bin/env node var shell = require("shelljs"); shell.exec("echo Hi"); link 간단한 라이브러리의 루트 디렉토..

[C++] 벡터(vector) 를 활용하여 큐(queue) 자료구조 구현하기

배열과 다르게 크기를 동적으로 조절할 수 있어 유용한 C++의 vector를 사용하여 FIFO 자료구조 queue를 구현해 보겠습니다. 선언 vector를 사용하기 위해 아래와 같이 선언할 수 있습니다. #include ... vector queue_v; 값 마지막에 추가하기 push_back 함수를 사용하여 vector의 끝에 원소를 추가할 수 있습니다. int i=2; queue_v.push_back(i); 첫 번째 값 제거하기 vector의 erase 함수를 사용하여 vector의 가장 첫 원소의 인덱스를 제거할 수 있습니다. queue_v.erase(queue_v.begin()); 첫 번째 값 저장 후 제거하기 값을 빼기 전에 뺄 값을 다른 곳에 활용해야 할 경우가 빈번한데, fron..