분류 전체보기

    WIKI :: 프로그래밍 표기법(kebab-case, snake_case, camelCase, PascalCase)

    Vue에 대해 공부를 진행하면서, `html과 css는 대소문자를 구분하지 않고 모두 소문자 취급` 한다는 것을 알게되었고, 그럼에 따라 `프로그래밍 표기법`으로 구분을 하게 되면서, 중요하다고 판단되어 정리하고자 한다. 프로그래밍 표기법 나무위키 에서는 다음과 같이 설명하고 있다. 기계가 이해하기엔 결과적으로 동일하지만, 코드를 작성하는 건 인간이기 때문에 (비단 코드를 짠 본인이 아니라도) 열람 및 유지보수를 용이하게 하기 위해 어느 정도 통일된 스타일의 필요성이 생겨난 것으로 추정된다. ... 코딩 스타일이 카멜레온마냥 변하는 것은 가장 안 좋은 습관이다. 표기법의 종류 표기법의 이름들의 표시를 통해 표기법을 유추 해볼 수 있다. 1. kebab-case 하이픈( - )으로 단어를 연결하는 표기법 ..

    Android :: RoomDatabase inital data(PrePopulating) 데이터베이스 초기 데이터 값 저장하기

    RoomDatabase가 처음 생성될때 초기 데이터 값을 넣는 방법이다. Room은 Callback을 제공하는데, 이때 Callback내에서 db가 처음 생성될때 불리는 `onCreate`를 사용하는 것이다. (여기서 onCreate는 모든 테이블이 생성된 뒤에 불린다고 나와있다.) 구현 설명 1. Entity public class SomeEntity{ private String name; private Integer age; } SomeEntity가 있다고 가정하겠다. 2. DAO @Dao public interface SomeEntityDao { @Insert public void insert(SomeEntityDao); } Entity가 있으니, DAO도 있다고 가정해보자. 3. Execute p..

    Android :: Notification을 사용하여 간단한 알림을 만들기(예제포함)

    안드로이드의 Notification을 구현하려면, Notification Channel을 생성해야 합니다.(특정 조건에서만 구현) Android 버전 `O` 이상부터, Notification Channel 개념이 추가되었습니다. 따라서, `O`버전 이상에 대해서 Channel을 추가해 주어야 합니다. 1. activity_main.xml 수정 이번 에제에서는 버튼 클릭으로 동작되는 Notification을 살펴볼 것입니다. 2. Notification 생성 Intent 는 PendingIntent내에서 필요하기 때문이다. PendingIntent는 Notification.setContentIntent(...) 의 인수로 들어가게된다.(클릭시의 동작을 위해) Intent notificationIntent ..

    Android :: Toolbar 사용 방법과 메뉴 커스터마이징(three dots image color, 메뉴의 위치, 예제포함)

    1. ToolBar 설명 안드로이드는 기본적으로 상단에 ActionBar를 제공한다. ActionBar는 View가 아니기 때문에 Customizing에 어려움을 겪는다. 예를들면 어플의 왼쪽 위 부분에 텍스트 대신 로고를 넣고 싶을때 그렇다. ToolBar는 View이다. 그렇기 때문에 Customizing ActionBar에 비해 자유롭다. ToolBar는 Api 21 부터 지원되기 시작하였다. 우리는 ActionBar를 사용하지 않을것이기 때문에, 우선 ActionBar를 제거해 줄것입니다. 또한, 이후의 작업에 대한 약간의 응용을 위해 themes.xml(style.xml)의 수정이 필요하겠습니다. 2. themes.xml(style.xml) ... // 이때 중요한건 parent의 값중에 NoA..

    Android Debug :: 4.1ver 이후로 생기는 Plugin Error 를 해결하는 방법

    - 처음에는 신경을 쓰지 않았던 로그이지만, 매일같이 들어가던 작업 도구 이기에 어느 순간부터 신경이 쓰이기 시작했다. - 단순한 해결 방법으로는 삭제가 답이라고 생각 되어서, plugin에 들어가봤지만 어디에도 설치가 되어있지 않다고 쓰여있는 상태... (`ctrl + shift + s` => 안드로이드 settings) 필자가 선택한 방법은 해당 플러그인이 존재하는 폴더에 들어가서 직접 삭제해 주어야 했다. 1. `win + e`(파일탐색기) => `ctrl + L`(주소창 선택 윈도우 기준) => `%APPDATA%\Google\AndroidStudio4.1\plugins` 2. 오류가 나는것들에 대해서 삭제하여 준다.(참고로 필자는 해당 plugin을 사용하지 않은지 꽤 되었다.) 3. 더 이상 ..

    ByteArrayOutputStream 는 어떻게 사용되는 것일까?

    필자는 기본적으로 File 에 대한 접근을 할때, `OutputStream`을 상속하는 파일 관리자 클래스를 많이 사용하곤 했다. 예를 들면 아래와 같은 `FileOutputStream`이 대표적이다.File file = new File(filePath, "파일명")FileOutputStream fos = new FileOutputStream(file) 기본적으로 `FileOutputStream, DataOutputStream, BufferedOutputStream` ... 을 호출시 File 관련 파라미터가 위 예제와 같이 존재한다.  그래서 늘 위의 `코드`와 같이 파일과 Steram 클래스의 연결을 통해 I/O 를 처리하였는데, 최근 동료의 코드를 리뷰하면서 ByteArrayOutputStream ..

    OS 마다 서로 다른 파일 구분자(Java, File, FileSeparator)

    파일 구분자 개요 흔히 url 입력하듯이 `/`을 입력하는 것이 파일을 구분하는것의 당연함이라고 생각했지만 검색해보니, OS마다 다른 파일 구분자를 가지고 있었다. 그것을 흔히 사용하는 두개의 OS로 구분하고자 한다. 윈도우 : \ 리눅스 : / 만약 다음과 같은 파일 구조를 가지고 있다고 할때 fileGrandParent ->fileParent ->->fileChildren 각각의 OS는 파일 구분자가 다름으로 인해서, 표시하는 방식이 다르게 된다. 윈도우 : fileGrandParent\fileParent\fileChildren 리눅스 : fileGrandParent/fileParent/fileChildren 그렇지만 요즘의 프로그램들은 `\`(백슬래시), `/`(슬래시) 든 알아서 인식한다고 한다...

    NodeJS :: 파일삭제(만약에 파일이 존재한다면, File system 사용)

    - 서버에서 파일을 생성하여 클라이언트에게 파일을 전송한다. - 전송한뒤 서버에서는 해당 파일이 필요가 없으므로, 삭제하고자 한다. 기본 사용법 var fs = require('fs') if(fs.existsSync('yourPath(경로)')){ // 파일이 존재한다면 true 그렇지 않은 경우 false 반환 fs.unlinkSync('yourPath(경로)') // unlinkSync 파일 삭제 } Try Catch로 예외처리를 하는 방법 const fs = require('fs') const path = 'yourPath(경로)' try { fs.unlinkSync(path) } catch(err) { console.error(err) }

    VirtualBox :: NAT 포트포워딩 밑 NAT 설명

    - 처음에는 Multiboot로 우분투os를 설치하여 사용하려고 하였으나, 실력이 부족해서인지 인터넷 연결을 하는 부분에서 상당한 문제가 있어서 해결하지 못하다가, VM을 사용했던 기억이 있어서 써보고자 합니다. - VM을 설치하면(버전 6.1.16을 사용하고 있습니다.), 이런창이 뜨게됩니다. - 해당 창의 `설정` 버튼을 누르면, `네트워크`가 보이게 됩니다. - 저는 `NAT`를 사용하여 포트포워딩 해서 서버를 연결해 줄 것이기 때문에, NAT로 네트워크를 설정합니다.(default 값이 NAT이다.) - 여기서 `고급` 탭을 누르면 `포트 포워딩` 버튼이 보이게 됩니다. 포트 포워딩 버튼을 누르게되면 밑의 창이 뜨게 됩니다. 파랑색 선으로 표시되어 있는 `192.168.56.1` 이 보이게 되는데..

    Android Debug :: 안드로이드 HTTP로 통신할때, 발생하는 문제 해결 방법

    - 안드로이드에서 retrofit2 를 사용해보고자 했다. 그러나, 서버에는 도달 하지도 못하고 통신이 계속해서 실패 한다는걸 알았다. - 서버에는 문제가 없는거 같고, 가끔 retrofit2에서 데이터를 받는 타입에 따라, 실패하는 경우가 있어서 해당 부분을 확인 했으나, 그런 문제는 아니었다. - 좀더 자세히 알아보니, 해당 오류가 떠 있었다. - 해당 오류를 의역해보자면, "CLEARTEXT 통신이 `xxx.xxx.xxx.xxx` 에 연결할때 네트워크 규약상 허락되지 않았다." 라는 듯 하다. - `HTTP` 는 `HTTPS` 에 비해서 취약하다는 것을 알고 있었으나, 그 영향일지 어떻게 해결해야 하는지는 모르겠어서 다짜고짜 검색을 해보았다. - 해당 속성은 api 레벨 23부터 추가되었으며, 안드..

728x90