다음과 같은 오류가 발생하였습니다. 1234Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/maven/com.squareup.okhttp3/okhttp/pom.properties File1: C:\Users\j-pc\.gradle\caches\modules-2\files-2.1\com.squareup.okhttp3\okhttp\3.8.0\5a11f0..
이전에 카카오톡 로그인 기능을 위해 카카오톡 API를 사용했었습니다. 그때의 SDK 버전은 다음과 같았습니다. (gradle.properties 에서 확인) 1KAKAO_SDK_VERSION=1.1.7cs 이번에 다른 기능을 추가하기위해 카카오 측에서 제시한 가이드를 따라 함수를 사용하던 중 사용을 하지 못하는 함수가 있어 이곳저곳 살펴보았지만 compile로 넣어준 패키지에서도 해당 class를 전혀 찾을 수 가 없어 카카오측에 문의를 3번이나 한 끝에야 문제를 찾을 수 있었습니다. 바로 SDK가 그 사이에 1.2.2 까지 나온것이고, 해당 class는 1.2.x 부터 사용이 가능했던 것입니다. 따라서 다음과 같이 수정한 후에는 문제없이 진행할 수 있었습니다. 1KAKAO_SDK_VERSION=1.2...
반도체하면 흰 방진옷을 입은 사람들이 생각이나고 그 분들이 가지고 다니는 반짝이는 원판이 떠오르는데요 이 반짝이는 원판이 웨이퍼 입니다. 웨이퍼의 사전적 의미를 보면 다음과 같습니다. 풀어서 보면 웨이퍼(Wafer)란 반도체 직접회로(IC)를 만드는 중요한 재료로, 실리콘(Si), 갈륨 아세나이드(GaAs)등을 성장시켜 얻은 단결정 기둥(Ingot,잉곳)을 적당한 지름으로 얇게 썬 원판모양의 판을 말 합니다. 대부분의 웨이퍼는 실리콘(Si)로 만들며, 그 이유는 실리콘은 모래에서 추출할 수 있어 재료가 풍부하며, 독성이 없어 환경적으로도 우수하기 때문입니다. 그럼 위에서 단결정 기둥(Ingot 이하 잉곳)을 적당한 지름으로 얇게 썬 원판 모양의 판이 웨이퍼(wafer)라고 하였는데요 여기서 이 잉곳(In..
[운영체제] - [OS] DeadLock 앞서 Deadlock이 무엇인지에 대해서 알아보았습니다. 이번엔 Deadlock의 조건에 대해서 알아보겠습니다.Deadlock의 조건 1) Mutual Exclusion 오직 1개의 Process가 한 번에 Shared Resource에 접근할 수 있습니다. Semaphore의 의미와 같습니다. 2) Preemption Disable 다른 Process가 소유하고 있는 lock을 어떠한 Process가 Preempt(획득) 할 수 없습니다. 3) Hold and Wait Process는 다른 소유의 lock을 얻으려면 기다려야 합니다. (Block 상태) 4) Circular Wait Lock의 요청이 Circle(cycle)을 가지는 형태이면 안됩니다. 앞선 [..
OS에서 일어날 수 있는 DeadLock에 대해서 알아보겠습니다. DeadLock 이란? DeadLock은 다른 Process가 소유한 자원을 요청하는 행위가 서로에게 행해져 모든 Process가 Block이 된 상태를 의미합니다. 예제를 통해 알아보겠습니다. 다음과 같은 2개의 Process가 있습니다. 123Process1owns lock Arequests lock Bcs 123Process2owns lock Brequests lock Acs Process1은 lock A를 가지고 있습니다. 즉, A라는 Semaphore를 가지고 있습니다. Process2는 lock B를 가지고 있습니다. Semaphore는 한 곳에서 사용중이면 다른 Process를 차단하는 목적으로 사용합니다. 따라서 Proces..
우분투(Ubuntu)에서 라즈비안(Raspbian)으로 바꾸고 나서 확장자가 어쩌구저쩌구.C나 어쩌구저쩌구.PHP인 파일을 수정해야 할 일이 생겼지만 Ubuntu Mate처럼 editor가 기본적으로 설치되어 있지 않아서 기존 Ubuntu에서 사용하던 gedit editor를 직접 설치하였습니다. gedit Gedit Editor는 오픈소스로 제공되고 있으므로 저작권에 관련 없이 개인적으로 자유롭게 사용하실 수 있습니다.(이런 걸 제공해주시는 분들은 정말 좋으신 분들인 것 같습니다.) 설치는 터미널에서 다른 기능들을 설치할 때와 마찬가지로 다음과 같이 설치하여줍니다. 1apt-get install geditcs 설치방법을 사진으로 살펴보면 다음과같이 한 줄을 적고 Enter를 누르시면 설치가 시작이됩니다..
UI / UX Libraries 소프트웨어가 꾸준히 발전하는 이유중 하나가 바로 이런 라이브러리 때문이 아닌가 싶습니다! 혼자서는 구현하기 힘들고 오래걸리는것들을 오픈소스인 라이브러리가 개인 개발자나 팀 단위에서 개발 시간을 짧게 만들어주고 개발을 쉽게 만들어 주고 있는것 같네요. 저는 어떠한 기능을 구현해야 할 때 우선 라이브러리가 있는지 살펴보고 시작을 한답니다.자주이용하는 Github에서 자주쓰이는 혹은 Star를 많이 받은 라이브러리(오픈소스)들을 모아논 페이지입니다.!! Github UI / UX 라이브러리 모음 에서 보실 수 있습니다!!(클릭하시면 새창으로 열립니다.) 위와 같이 다양한 종류의 라이브러리들이 기다리고 있습니다. Adapter 같은 기능을 따로 만들기 귀찮은 ViewPager나 ..
간단하게 메뉴나 목록을 만들수 있는 ListView에 대해서 알아보겠습니다.ListView 우선 xml에서 ListView를 만들어 주었습니다. 1234 =cs 이제 MainActivity에서 ListView에 Item을 추가시켜 주겠습니다. 1234567891011ListView test;public class MainActivity extends AppCompatActivity { ListView test; // ListView 형태를 선언. String[] item; // String 배열을 추가. ArrayAdapter adapter; // String과 ListView를 연결해주기 위해 선언. @Override protected void onCreate(Bundle savedInstanceSta..
[MicroC/OS-II] CPU Scheduling with Non-Preemptive에 이어서 살펴보겠습니다. 2. Preemptive (선점방식) Preemptive은 한 Process가 실행 중일때 다른 Process가 CPU를 사용할 수 있습니다. 2가지의 예를 살펴보겠습니다. ㄱ) Round Robin 이름 그대로 뱅뱅 돈다고 생각하시면 됩니다. 이전 예제와 같은 Process와 실행 시간이 다음과 같이 있습니다. Preemptive 방식인 Round Robin에는 한가지가 더 추가됩니다 바로 time quantum 입니다. time quantum이 지나면 다른 process에 CPU를 주게됩니다. 위의 예제에 time quantum = 2의 시간을 주고 결과를 살펴보았습니다. 평균 응답 시간..
[MicroC/OS-II] Task에 관련된 함수들에서 Task에 관한 함수들을 살펴볼 때 CPU Scheduling을 멈춘다, 시작한다 라는 언급을 했었습니다. 이번엔 그 CPU Scheduling에 대해서 알아보겠습니다. CPU Scheduling CPU Scheduling은 말 그대로 Process를 실행하는데 있어 Scheduling을 하는 것입니다. 다음의 그림을 보겠습니다. Process가 여러개 있을때 CPU는 어느 Process를 Running 해야 할까요?? 이런 문제의 답을 CPU Scheduling 이라합니다. CPU Scheduling의 형태에는 2가지의 형태가 있습니다. 그 중 하나인 Non-Preemptive에 대해서 살펴보겠습니다. 1. Non-Preemptive (비 선점방식..
- Total
- Today
- Yesterday