본문 바로가기

프로그래밍88

[android] xmlns android, app 이해 개요 액티비티 구현 시 루트 레이아웃에 다음과 같이 선언되어있음을 확인할 수 있습니다. xmlns xmls는 xml 네임스페이스를 정의합니다. 한 xml에서 다른 외부 xml에 정의된 변수를 활용하기 위해 사용합니다. xml 네임스페이스는 두 개 이상의 xml을 구별하여 충돌을 방지하는 변수명입니다. xml 네임스페이스 정의 필요성 안드로이드에서 showAsAction 은 android와 app모두 정의되어 있을 수 있습니다. android:showAsAction app:showAsAction 이때, 어떠한 showAsAction을 사용할 것인지에 대해 명확한 정의가 필요합니다. 굳이 android 가 아니어도 상관없습니다. androidCutsomNamespace 이런식으로 정의해도 됩니다. 말 그대로.. 2023. 11. 22.
[C++] vector <queue<int>> 그리고 vector<pair<int,int>> 개요 참 많이 헷갈립니다. vector 자유롭게 추가/삭제 가능한 queue의 집합입니다. #1 예제 코드 #include #include #include using namespace std; int main() { vector vecOfQueues; for (int i = 0; i Queue 2 +---+---+---+---+---+ |11 |12 |13 |14 |15 | --> Queue 3 +---+---+---+---+---+ vector vecOfQueues[1001] #1 예제 코드 #include #include #inclu.. 2023. 11. 20.
[SAP/ABAP] RETURN과 EXIT의 차이 Procedureabap에서 procedure는 다음과 같은 종류를 가집니다.SubroutineFunction moduleMethod RETURN상황에 관계없이 procedure에서 나갑니다.#1 예제 코드DO 5 TIMES. WRITE : / 'A'. DO 5 TIMES. WRITE : / 'B'. IF SY-INDEX = '3'. RETURN. ENDIF. ENDDO.ENDDO.#2 출력 결과ABBB EXIT반복문 안에서는 해당 반복문만을, 반복문 밖에서는 코드를 감싸는 procedure에서부터 나갑니다. 즉 일관적인 return과 다르게  상황에 따라 모호한 명령을 수행합니다.#1 예제 코드DO 5 TIMES. WRITE : / 'A'. DO 5 TIMES. .. 2023. 11. 13.
[SAP] client 입력 모드 변경 (insert / override) 입력 모드 변경클라이언트 편집기 하단 우측의 INS 를 클릭하여 override 모드로 변경할 수 있습니다. 출처 SAP Tips: Using the insert and override buttons in your SAP GUI - EursapHere’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 2023. 10. 30.
[SAP] 자주 사용하는 TCODE 개요SAP 사용하면서 자주 사용하는 TCODE 모음입니다. 계속 업데이트 하겠습니다. 사용 팁/NTCODE - 강제로 해당 티코드로 이동/OTCODE - 새로운 창에서 티코드 이동 TCODESE80 - 통합 도구SE37 - FUNCTION MODULE 생성/관리SE38 - 프로그램(리포트) 생성/관리SE11 - 테이블/구조체 등 모든 데이터 타입 관리SE16N - 테이블  데이터 관리 도구 Workzone loginhttps://workzone.one.int.sap/site#workzone-home&/groups https://workzone.one.int.sap/site#workzone-home&/groups workzone.one.int.sap 2023. 10. 24.
[Dart] Effective Dart 스타일 가이드 요약 개요 공식 문서에서 각 변수, 파일에 대한 명명 가이드 제공. 크게 3가지 스타일로 나뉩니다. UpperCamelCase : 각 단어 첫 문자 대문자 lowerCamelCase : 첫 단어 모두 소문자, 나머지 단어 첫 문자 대문자 lowercase_with_underscores : 모두 소문자, _ 사용 UpperCamelCase 클래스 class SliderMenu; 익스텐션 extension ExamlpeExtension 사용자 정의 타입 typedef CustomTypeA lowerCamelCase 기타 변수명 및 constant 변수 userName lowercase_with_underscores 디렉토리 명 screen_user 파일 명 (dart 파일 뿐만 아니라, 이미지 등 정적 리소스 파.. 2023. 10. 12.
[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.. 2023. 10. 11.
[Flutter] Provider 아키텍처 라이브러리에 대한 이해 개요 Provider는 플러터 전역 상태 관리를 위한 아키텍처 라이브러리 중 하나입니다. 플러터 생태계에서 아키텍처를 라이브러리 형태로 만들어 사용하는 게 일반적 Provider는 인기있는 아키텍처 라이브러리 중 하나로, ChangeNotifier ChangeNotifierProvider Consumer 세 가지 개념을 사용 ChangeNotifier 상태 변화에 대한 알림을 제공하는 클래스 특정 클래스가 ChangeNotifier 클래스이면 NotifyListener를 통해 외부에서 특정 클래스의 상태 변화에 대해 인지 이를 활용해서 유닛 테스팅 또한 쉽게 가능 class CartModel extends ChangeNotifier { List _items = []; void add(Item item) .. 2023. 10. 11.
[Dart] Dynamic Type에 대한 이해 개요 Dart언어에서 Type annotation은 필수가 아닌 선택 따라서 Type annotation 을 명시하지 않았을 경우 (== var 으로 변수를 선언한 경우), 기계는 맥락을 파악하여 자료형을 추론 기계는 추론에 실패한 변수에 대해선 'dynamic' 자료형으로 지정 사용 예 dynamic 변수를 선언하는 예제입니다. dynamic은 다른 자료형이 될 수 있는 타입입니다. void main(){ dynamic isThisString = 'hi'; isThisString = 1; if(isThisString is int){ print("Not a String"); } } // 결과 : Not a String 위의 특성을 가지기에 Nullable으로 선언하는 것은 의미가 없습니다. dynamic.. 2023. 9. 22.
[Gradle] unexpected element <property> found in <manifest><application> 문제 해결하기 문제 상황 플러터 앱 빌드 과정에서 아래와 같은 에러가 발생했습니다. manifest.xml 파일을 잘못 작성한 경우에도 발생할 수도 있지만 해당 에러는 잘 작성했음에도 발생할 수 있습니다. unexpected element found in 해결 방법 android gradle plugin과 gradle의 호환성 문제 또는 gradle이 이를 갱신하지 않아 발생할 수 있는 문제입니다. android gradle plugin과 gradle의 상호 호환되는 버전을 확인하고 호환되는 버전으로 바꾸어줍니다. 이 글에서 저는 상호 호환되는 android gradle plugin 4.2.0버전과 gradle 6.7.1버전으로 맞추어 주겠습니다. 1. 프로젝트/android/build.gradle 수정 buildsc.. 2023. 9. 17.
[Flutter] 오래된 플러터 프로젝트 수정 시 발생할 수 있는 에러 추가적인 에러가 있는 경우 계속 업데이트하겠습니다. Unsound null safety 라이브러리 Dart언어의 null safety 공식 지원이 시작된 지 얼마 되지 않았습니다. 이전 버전의 Dart로 작성된 라이브러리를 사용중인 경우 발생할 수 있는 에러입니다. 플러터 프로젝트 구동 시 아래와 같이 --no-sound-null-safety 옵션을 추가해주세요. flutter run --no-sound-null-safety permission_handler 관련 에러 FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':permission_handler:compileDebugJavaWithJavac'.. 2023. 9. 16.
[Flutter] MacOS M1 실리콘에 플러터 개발 환경 설정하기 전제 이 글은 다음과 같은 전제 하에 플러터 설치를 진행합니다. 설치 환경은 실리콘 아키텍처 및 최신 MacOS 버전 xcode가 설치되어 있음, iOS 에뮬레이터가 하나 이상 설치되어 있음 로세타 번역이 가능하도록 적용되어 있음 Android studio, android SDK 설치 완료 Intellij IDE가 설치되어 있음 플러터 다운로드 및 설정 [ zip 파일 다운로드 ] 안내사항에 따라 플러터 압축 파일을 다운받습니다. 저는 m1 맥을 사용중이므로 오른쪽 압축 파일을 다운받았습니다. [ zip 파일 압축 해제 ] 플러터 압축 파일을 희망하는 디렉토리에 이동시킨 후 터미널을 열어 압축 파일을 풀어주세요. 저는 Desktop/flutterdev 디렉토리 내 압축 파일을 이동했습니다. cd Desk.. 2023. 9. 8.