Development 19

React Native FCM 구축 (1)

Firebase 설정 1. Firebase module 설치 - npm install --save @react-native-firebase/app 2. 자격 증명 발급 - Android · 프로젝트 내 android 폴더 진입 (cd android) · ./gradlew signingReport 실행 · 여러 Variant 정보가 생성되는데, debug Variant의 SAH1를 복사하여 Firebase Project 생성 시 설정 (SHA1은 선택이지만 Dynamic Link 등의 기능을 사용하기 위해서는 설정해야 함) · google-services.json 파일이 생성되면 파일을 /android/app에 이동 3. Firebase 설정 · 프로젝트 레벨의 build.gradle 파일에 depende..

Widget

Text TextView -흔하디 흔하디 흔하게 쓰이는 것. 우리가 처음 프로젝트를 만들 때에도 가운데에 볼 수 있는 위젯이다. TextView의 사이즈는 문자열의 길이에 따라 assign되기 때문에 공백으로 하는 건 좋지 않다. TextColor #AARRGGBB의 코드를 통하여 해당 Alpha 값 및 색상 코드 값을 통하여 글자색을 설정한다. Alpah 값에는 FF(Non-alpha), 88(Half-Alpha), 00(Alpha 100%)을 설정할 수 있다. 나머지 값에는 RGB 코드 값을 통하여 색상을 지정할 수 있다. TextSize 뜻 그대로 Text의 크기를 결정한다. dp, sp 등 단위가 여럿 있지만 흔히 사용하는 건 dp를 사용한다. TextStyle 글씨의 형태를 뜻한다. 굵게, 보통..

Development/JAVA 2020.04.08

Layout

RelativeLayout 영어 이름 그대로 상대적인 위치에 의해서 View들을 배치할 수 있는 레이아웃이다. android:layout_centerInParent 부모 컨테이너의 수평과 수직 방향 중앙에 배치한다. android:layout_alignParentBottom 뷰를 부모 컨테이너 아래에 배치한다. * android:layout_alignParentTop 뷰를 부모 컨테이너 위에 배치한다. andriod:layout_above @id를 사용하여 뷰를 배치한다. 위 * andorid:layout_below @id를 사용하여 뷰를 배치한다. 아래 즉, android:layout_parent 관련은 부모 뷰와의 레이아웃 관계 android:layout_above, below 등은 뷰들과의 레이아웃..

Development/JAVA 2020.04.08

JSP 기초 - JSP 프로그램의 동작 원리

JSP를 제대로 알기 위해서는 JSP가 어떻게 처리가 되어 브라우저에 출력이 되는지를 알아야 한다. 위의 그림을 보면 쉽게 이해가 된다. 클라이언트가 http://riddler.co.kr/main.jsp로 요청을 한다고 가정하자. riddler.co.kr의 서버는 GET /main.jsp의 request를 받았고 이를 처리하려고 할 것이다. 일반적인 정적인 페이지나 html, img, css, js와 같은 static files들에 대한 요청은 웹서버에서 바로 처리해 줄 수 있으나 소스코드가 실행되어 response를 반환해 주는 경우에는 웹 서버가 처리할 수 없다. 이때, 웹 서버는 해당 요청을 JSP Container에게 넘겨주고 JSP Container는 해당 파일을 읽어들인다. 읽어들이고 해당 파..

Development/JSP 2020.04.07

JSP 기초 - JSP 웹 페이지 구성 요소

전 파트에서 JSP는 HTML과 다른 것이 거의 없었다. 맨 위의 딱 한 줄을 제외하곤 말이다. 그렇기 때문에 HTML을 쓰지 굳이 JSP를 써야 할 이유가 없어 보인다. 이제는 JSP를 써야할 이유를 슬슬 알아야 할 때가 온 것 같다. JSP 웹 페이지는 다양한 요소들로 구성이 되어 있는데, 이 요소들의 힘이 강력하다. 다양한 요소들은 무엇이 있는지 알아보자. 구성요소 태그 설명 Directive (지시문) JSP 페이지의 속성을 지정한다. Declaration (선언문) 스크립트릿, 표현식에서 사용할 변수, 메소드를 선언한다. (전역에서 사용 가능) Scriptlet (스크립트릿) JSP 페이지 내에서 자바 코드를 사용할 수 있게 해 주는 영역, 변수를 선언할 수 있다. Expression (표현식)..

Development/JSP 2020.04.07

JSP 기초 - 웹 프로젝트 생성, JSP 파일 생성

모든 개발의 작품이 그렇듯이 가장 처음에 하는 것은 프로젝트를 생성하는 것이다. 이번 글에서는 웹 프로젝트를 생성하는 것을 기록해 본다. · File -> New -> Dynamic Web Project의 과정을 통해 웹 프로젝트를 생성한다. · 프로젝트 명에 멋있는 이름을 지어준다. · Target runtime 값은 개인이 설치한 톰캣을 설정해 주면 되고, Dynamic web module versions은 3.1을 선택한다. 더 낮은 버전도 상관없지만 3.0 미만은 어노테이션을 사용하지 않고 web.xml을 사용해야 한다. Next 버튼을 클릭하여 설정을 진행한다. 모든 설정을 하고 나면 멋있는 나의 프로젝트가 생성된 것을 확인할 수 있다. 이제 이 프로젝트는 세상에 하나뿐인 창작물이 될 수 있다...

Development/JSP 2020.04.07

키워드 네트워크 분석 [Betweenness, Degree Centrality]

Functions Description Input Output setPath .xlsx 파일이 위치한 경로 설정 def setPath(self, src : str): setDF .xlsx 파일을 통해 DataFrame 생성 def setDF(self): add_node 키워드 노드 추가 def add_node(self, key): add_edge 키워드 간선 추가 def add_edge(self, u, v): add_edge_from 키워드 간선 추가 (iteraitor 사용) def add_edge_from(self, _list): getGraph 그래프 반환 def getGraph(self): Object : Networkx Graph make_graph 그래프 생성 def make_graph(sel..

Django Model 동적 Filtering

장고의 ORM으로 개발을 하다보면 동적으로 모델을 필터링 해야 하는 경우가 생길 수 있습니다. 예를 들어, 데이터 필드가 성별, 연령대(10대, 20대··)가 있다고 가정할 때 각각 필드에 대해서 한 가지의 조건만 준다면 사실상 Q나 동적인 필터링을 사용할 이유가 없습니다. 단순히 Model.objects.filter(성별='남자')와 같이 처리할 수 있기 때문입니다. 그러나, 만약에 연령대가 10대, 30대이고, 성별이 여자인 사람을 뽑아내고 싶다면 위의 방법으로는 불가능합니다. 따라서 이때 사용하는 함수가 Q입니다. Model.objects.filter((Q(연령대='10대')|Q(연령대='30대')), 성별="여자")와 같이 처리할 수 있습니다. 여기서 만족하지 않고, 클라이언트로부터 받아온 데이터..

Development/Django 2019.08.07