Dev
-
[Error] Native module ~~ tried to override ~~ for module name ~~Dev/React Native 2019. 11. 10. 00:34
아.. Expo kit으로 Eject 시킨 후에 삽질을 많이 하게 된다. 제목과 같은 에러를 발견하게 되면 두가지 처리를 해주자. 1. ${ProjectRoot}/android/app/src/main/java/host/exp/exponent/MainApplication.java 의 getPackages() 함수의 리턴값이 중복되는지 확인하고 중복되는 값을 제거해주자. (import 선언문도 중복되어 있을 수 있으니 같이 확인해보자.) 2. ~~ 해당 라이브러리의 ${ProjectRoot}/node_modules/${Lib}/android/src/main/java/com/reactnativecommunity/${Lib}/${Lib}Module.java 맨 마지막에 아래와 같은 메서드를 추가해주자.. @Ov..
-
React Native Expo Eject 정리 (to ExpoKit)Dev/React Native 2019. 11. 2. 03:50
토이프로젝트를 하다가, kakao-login, naver-login 연동을 하기위해 여러가지 실험과 삽질들을 하게되었다. WebView로 해결하는 방법이 있었지만 나중에 또 이런 상황이 올 수 있을 것 같아 Native 모듈을 쓰기 위해 그냥 Expo에서 Eject 하기로 결정했다. Google 로그인이나, Facebook 로그인 같은 경우에는 굳이 Eject 하지 않아도 진행이 가능한 것 같은데, 아무래도 비교적 최신 기술이기 때문에 우리나라는 지원이 조금 늦는 듯 하다. 어쨌거나, 중간에 잘못될 수도 있기에 git 저장소에 커밋을 해두고 안전하게 진행했다. - expo Eject 명령 실행 IOS Identifier 값과 Android Package 값을 입력하는 절차가 있다. 해당 식별자 들은 Ap..
-
자바스크립트 - 객체지향 프로그래밍 - Class 만들기Dev/Javascript 2019. 10. 25. 23:37
자바스크립트는 프로토타입 기반 객체지향 언어이기 때문에 Java와 같은 언어처럼 클래스가 없습니다. 그러나 프로토타입 체인과 생성자함수를 이용하면 클래스와 같은 기능을 하는 함수를 만들 수 있습니다. 이번엔 자바스크립트의 특성을 이용해 클래스를 만드는 makeClass 함수를 만들어보도록 하겠습니다. - makeClass는 상속받을 객체를 인자로 받아 부모 함수를 상속받는 자식 클래스를 만듭니다. 만들고자 하는 함수의 활용은 다음과 같습니다. var SuperClass = makeClass(obj); var SubClass = SuperClass.makeClass(obj); 함수 makeClass는 다음과같이 구성됩니다. function makeClass(obj) { /* 1. 자식클래스 생성 2. 생성..
-
자바스크립트 - 객체지향 프로그래밍 - 캡슐화 (2)Dev/Javascript 2019. 10. 25. 21:44
이전 포스팅에서 자바스크립트의 기본적인 캡슐화 구현 방법을 알아보았습니다. 이번엔, 여러 유명 자바스크립트 라이브러리에서 사용하는 캡슐화 패턴을 알아보도록 할게요. - 모듈패턴 var Person = function(arg) { var name = arg ? arg : "junyoung"; return { getName: function() { return name; }, setName: function(arg) { name = arg; } }; }; var me = Person(); console.log(me.getName()); 위의 코드를 보면 Person 함수를 호출하여 객체를 리턴받는 것을 볼 수 있죠. (이전 예제는 new로 인스턴스를 생성합니다) 리턴되는 객체에는 Person 함수의 지역변수..
-
자바스크립트 - 객체지향 프로그래밍 - 캡슐화 (1)Dev/Javascript 2019. 10. 25. 20:56
자바스크립트의 캡슐화를 알아보기 전, 객체지향 프로그래밍에서의 캡슐화부터 간단히 짚고 넘어가도록 하겠습니다. - 객체지향 프로그래밍에서의 캡슐화란 ? 비슷한, 관련된 역할을 하는 속성과 메소드들을 하나의 틀(클래스 등) 안에 담는 것을 의미합니다. - 캡슐화를 왜 할까요? 결론부터 말씀드리면 가장 중요한 이유는 정보은닉 때문입니다. 정보은닉이란, 객체에 대한 구체적인 정보를 노출시키지 않도록 하기 위한 기법입니다. - 예를들면? 사원의 속성 중에 "월급" 이라는 속성이 있다고 합시다. 만약 Public으로 누구나 "월급"이라는 속성에 접근할 수 있다면, 사원.월급 = -500000 와 같은 현실세계에선 불가능한 코드를 작성할 수 있게 되죠. 그러나, 캡슐화를 해서 월급이라는 속성을 직접적으로 접근을 못하..