분류 전체보기
-
Robolectric Test 수행 시 오류 NoSuchMethodError: No getAnnotatedParameterTypes()TDD 2021. 2. 20. 16:37
Robolectric은 실제 기기나 에뮬레이터 위에서 동작하는 것이 아닌 JVM 에서 동작하므로, 실제 기기나 에뮬레이터에서 테스트를 진행하는 androidTest 폴더에서 테스트를 진행하면 NoSuchMethodError: No getAnnotatedParameterTypes()..... 와 같은 오류가 뜨게 된다. 이 문제를 해결하려면 Robolectric 테스트는 androidTest 폴더가 아닌 Test 폴더에 생성하여 실행하여야 한다.
-
[GitHub] Rebase -i로 커밋 합치고 편집하기Github 2020. 12. 20. 00:16
git에서 사용되는 Rebase는 주로 커밋을 병합하는 일 등에 쓰이지만, 쓰임새가 한 가지 더 있는데, 바로 interactive(대화형) 옵션이다. git rebase -i HEAD~{HEAD포인터로부터의 커밋 갯수} 명령어를 사용하여 HEAD로부터 일정 범위의 커밋을 선택하여 편집할 수 있다. 해당 명령어를 입력하면, 아래 화면과 같은 내용이 출력되면서 vi 편집기 화면으로 진입한다. 아래에는 각각의 옵션들에 대한 설명이 나와있는데, 각 옵션들을 함께 실습하며 어떤 역할을 하는 지 알아보도록 하자. Pick 위 캡쳐화면에 pick이라고 표시된 두 개의 커밋은 현재 사용된다는 것을 의미하며, 해당 표시가 되어 있는 커밋은 어떠한 편집이 가해지거나 하지는 않는다. 하지만 pick 표시가 되어있다하더라도..
-
[GitHub] Tag란?Github 2020. 12. 19. 23:25
Tag란 깃에서 각 커밋에 달 수 있는 꼬리표 같은 것으로서, 주로 릴리즈 버전을 표시하는 데에 주로 이용된다. 태그가 달려있는지 여부와 해당 태그에 이름에 따라 어떤 버전이 중요한 버전인 지 확인할 수 있게 해준다. git tag :현재 등록된 태그의 목록을 표시한다. git tag "태그 이름" : 해당 이름으로 현재 HEAD에 태그를 추가한다. 위와 같이 해당 이름으로 태그가 추가된 것을 확인할 수 있다. git tag -d "태그 이름" 해당 이름을 가진 태그를 삭제한다. 참고로, git push를 통해 원격 저장소에 변경사항을 푸시한다고 해도, 변경 사항에 tag가 자동으로 포함되지 않기 때문에, 원격지에도 태그를 적용하고자 한다면, git push --tags를 통해 태그를 적용할 수 있다.
-
구름 IDE에서 Gradle build가 느릴 경우 해결 방법개발 팁 2020. 12. 19. 21:52
구름 IDE에서 처음 리눅스 환경으로 스프링부트 프로젝트를 실행하는데,실질적으로 개발하기에는 빌드 속도가 너무할 정도로 느리다. 1분 40초는 개발자에게는 너무한 시간이다. 시행착오를 거듭하다가, 이 속도의 원인이 Gradle의 느린 빌드 속도에 있다는 것을 알게 되었다. 그리고 터미널에 간단한 명령 하나만 입력하면 해결할 수 있다. touch ~/.gradle/gradle.properties && echo "org.gradle.daemon=true" >> ~/.gradle/gradle.properties 위 명령어를 입력하고 난 뒤 gradle build 명령어를 추가로 입력하면 세팅이 완료된다. 다시 한 번 스프링 부트 프로젝트를 실행해보자. 1분 40초나 걸리던 Gradle build가 고작 5초(..
-
[아이패드로 코딩하기] 구름 IDE에서 Spring Boot 프로젝트 생성하고 공유하기개발 팁 2020. 12. 19. 19:48
아이패드에서 구름 IDE를 사용해 현재 개발 중이던 프로젝트를 깃허브에서 내려받아 바로 진행하려고 하였으나, 도중 만났던 오류들과 이러한 오류들을 피해 내가 찾아낸 방법들을 공유하고자 한다. 처음 시도했을 때는 Github에 올려져 있던 내 프로젝트를 그대로 내려받는 방법을 선택하였다. 그러나 정작 내려받고 나서 실행시켜보니, intellij에서는 잘만 실행되던 내 프로젝트가 막상 구름 IDE에서 실행시켜보니, 빌드가 안되는 현상이 목격되었다. 원인을 살펴보니, 현 Gradle 버전이 스프링부트 플러그인 요구 사항에 맞지 않는다는 것이었다. 그래서 좀 더 높은 버전의 Gradle을 사용하고자 업데이트를 진행. 그러나 결과는 실패.아마도 어떤 알 수 없는 문제에 의해 파일 다운로드가 실패한 것으로 보인다...
-
[아이패드로 코딩하기] 구름 IDE 소개개발 팁 2020. 12. 19. 17:33
최근에 아이패드에서 사용할 수 있는 쓸만한 IDE로는 Pythonista가 있지만, 파이썬 밖에 쓰지 못하기 때문에 따로 내가 개발을 진행할 만한 온라인 IDE가 없나 생각해보다가, 요 근래 있어서 유명해진 구름 IDE에 관심을 가지게 되었다. 도커 기반의 컨테이너로 사용자가 직접 개발 가능한 환경을 초기에 최대 5개까지 생성할 수 있게 해주고, 꽤나 다양한 언어를 지원한다. 나는 이 구름 IDE를 현재 개발 중인 어플의 서버를 개발하는 데에 이용할 계획이다. 우선은 시험 삼아 첫 프로젝트를 생성해보았다. 스프링부트 Gradle로 생성된 프로젝트이다. 우선은 PC 환경에서의 모습이다. 일반적인 IDE 화면과 크게 다를 것이 없어보인다. 프로젝트를 실행하려면 우측 하단의 재생 버튼을 눌러 명령을 실행하면 ..
-
[PS]좌표 정렬하기Problem Solving 2020. 12. 10. 22:57
단어 정렬하기와 비슷한 문제. 좌표가 입력되고 해당 좌표를 x좌표의 오름차순으로 정렬하고, x좌표가 같은 경우 다음은 y좌표로 정렬하여 출력해야 하는 문제이다. import math def mergesort(entries): if isinstance(entries,list) and len(entries) > 1 : pivot = math.floor(len(entries)/2)-1 first = mergesort(entries[:pivot+1]) second = mergesort(entries[pivot+1:]) return merge(first,second) else: return entries def merge(first,second): unit=[] if not isinstance(first,list..
-
[DataBase] E-R 다이어그램DataBase 2020. 12. 10. 22:06
E-R 다이어그램은 요구 사항으로부터 얻어낸 데이터를 개체, 속성 , 관계로 표현하는 다이어그램을 말한다. 개체(Entity) 단독으로 존재하는 객체,여러 개의 속성을 가지며, 동일한 개체는 존재할 수 없다. 다이어그램 내에서 사각형으로 표현된다. 속성(Attribute) 개체가 가지는 어떠한 특징, 즉 속성들. 다이어그램 내에서 타원으로 표현된다. 관계(Relationship) 각 개체들이 가지는 관계 각 개체들이 1:N,1:1,N:M 관계를 가질 수 있으며, 마름모로 표현된다. 속성 종류 속성 도메인(Attribute Domain) 각 속성들이 가질 수 있는 값들의 집합을 의미. ex) 0~9까지의 정수, 문자열, 날짜 등등.. 키 속성(Key Attribute) 개체를 구분할 수 있는 고유한 속성을..
-
[Database]데이터베이스 설계DataBase 2020. 12. 10. 21:32
데이터베이스 설계는 크게 세 가지로 나누어볼 수 있다. 첫째,개념적 설계 둘째, 논리적 설계 셋째, 물리적 설계 개념적 설계 개념적 설계는 설계가 시작되기 전 작성한 요구사항 명세를 기준으로 하여 현실세계의 객체와 사물들을 개념적인 관계로 표현하는 작업이며, 이는 특정 DBMS에 독립적인 개념 스키마를 만드는 일이다. 이 단계에서는 주로 E-R 다이어그램이 사용된다. 개체와 관계를 통하여 데이터를 표현하고 있는 그림이다. 논리적 설계 개념적 설계에서 만들어진 데이터 구조를 컴퓨터가 이해할 수 있는 논리적 구조로 치환하는 단계. 특정 DBMS가 요구하는 논리적 형태로 데이터를 설계하는 과정이다. RDBMS의 경우 테이블을 정의하는 과정이라고 할 수 있다. 물리적 설계 논리적 설계로 표현된 데이터를 물리적인..