Category Archives: NOTE

Kotlin Class implements interface.getter

getter를 포함한 UserDetails 인터페이스 구현시

자바였다면 간단하게 구현

1.

2.

3.

 

IT 프로그래머 양성소 – 직업전문학교의 세대교체, 부트캠프

IT 교육기관

부트캠프 맥 윈도우 멀티부팅해주는 유틸 이름으로만 생각하고 있었는데.. 요즘은 다른 의미로도 사용되고 있었다.

개발자들을 투입가능한 수준으로 가르치는 캠프?

이름이야 영어식으로 멋지게 지어놨지만…

따지고 보면 그냥 직업교육학교 아닙니까?

옛날에는 비트컴퓨터, 삼성멀티캠퍼스, 쌍용교육센터 정도가 있었고

  • 비트 http://www.bitacademy.com
  • 삼성 http://multicampus.com
  • 쌍용 http://www.sist.co.kr

학원보다는 전문대학 수준의 교육기관이지만, 얼마 못가 없어진 NHN NEXT도 있었다.
사회공헌 활동의 일환으로 시작했다고 생각했는데 폐지됐다니…
NHN 이름걸고 우수한 자원들 쓸어모아 갔었는데 걔네들 그냥 대학 가게 냅뒀으면 좋은대학 가서 잘 살텐데 뭔 물을 먹인건지 모르겠다.

위의 학원과 같은 격으로 보지는 않지만 ‘IT뱅크’도 있다. 커뮤니티에 광고를 너무 징글징글하게 해대던…
(네이버 지식인에 IT뱅크를 검색 해 주세요)

꼭 어느 학원을 지칭하는 것은 아니지만 어떤 막장 국비지원 직업교육학교는 학원생 한명 끌어올 때 마다 영업사원이 100만원씩 커미션 가져간다는 말도 있었는데 ~~

 

위는 과거의 학원들…

그리고 세대교체 된 학원들은

부트캠프

라고 리브랜딩을 해서 기존의 국비지원 직업교육학교와 차별화를 꾀하고 있다.

우수 IT인력을 양성하겠다는 조금의 사명감도 가지고~

  • 코드 스테이츠 https://codestates.com
  • 코드스쿼드 http://codesquad.kr

학원비가 꽤나 비싼데… 정부지원이 없는 것을 감안했을 때 그렇게 무지막지하지는 않다.

(국비지원을 받는 조건이 좀 있어서 이것을 채우기 위해 비용을 쓰느니 그냥 학원교육이나 잘 하자고 생각한 듯?)

성공조건

졸업생(수료생?)의 실력수준만 보증할 수 있다면, 이 종류의 학원들이 초급개발자 레벨증명? 역할을 해 줄 수도 있겠지만…

그러려면 입학/수료시 수준검증이 필요할텐데 영리활동을 하는 학원에서 그게 지속적으로 가능할지는…

Kotlin 한 6개월 사용후기

문법적으로 기존 언어에 비해 많이 이질적이지 않고 받아들일만 했다.

구글에서 안드로이드 공식언어로 지정, 인텔리J의 젯브레인에서 개발, 스프링 진영에서도 지원된다고 하고…

별 문제가 없을 줄 알았는데… 이게 웬걸

  • JPA Entity 설계가 안되는건 아닌데 힘들었다.
    data class로 설계한다고도 하던데…. 기본값을 일일이 지정해줘야하는것도 불편하고… 이건 빠르게 포기하고 domain 모듈은 자바로 변경해서 작업해가지고 뭐가 더 안되는지도 모르겠다.
  • QueryDSL 안된다. 안됐었다. 지금은 모르겠다.
  • Validation. 힘들었지만 하긴했다. 다 되긴되더라
    @Field.NotNull
    val name:String
  • Annotation 넣을때.. 안되는건 아닌데 뭔가 괴상하다.
    이런형태에서 @Annotations(arrayOf(Annotation, Annotation))
    이것도 지원되기 시작 @Annotations([Annotation, Annotation])

이래저래 몇번 쓰다보니 익숙해지긴 했다.

위의 과정에서 제대로 된 해결책을 찾기가 힘들다는게 문제..

그리고 자꾸 변한다는것도 문제랄까… 좋아지니까 좋은건가

 

주의사항 하나 Gradle kotlin 버전과 intellij plugin 버전이 안맞으면 아예 먹통이 된다.

CrossPlatformApp 개발 툴 목록

https://en.wikipedia.org/wiki/List_of_platform-independent_GUI_libraries

https://www.qt.io/
http://appjs.com/
https://electron.atom.io/
https://www.wxwidgets.org/
https://wiki.eclipse.org/Rich_Client_Platform

대강 이정도가 있는데

최근 관심을 끄는것은 역시 js진영. electron.
html 기반으로 돌아가서 화면이 깔끔하고 화면만들기가 쉽다.
웹개발하는것처럼 데스크탑 앱을 만들면 된다.
atom 에디터의 엔진을 사용하는 것 같은데… 그냥 그정도 성능으로 돌아간다고 보면 된다.

이전까지는 데스크탑솔루션 하면 이클립스 RCP가 많이 사용됐는데… 요즘은 힘이 좀 빠진 것 같다.
자금이 안 들어오는지…
UI가 크게 예쁠필요가 없다면 그렇게 이것저것 따질필요 없이 자신이 익숙한 언어에서 지원하는걸 사용하면 될 것 같다.
자바 개발자라면 그냥 electron을 쓰는게 나을 것 같고….
이클립스 rcp는 4.x버전을 만들어놓고도 예제는 죄다 3.x버전을 올려놓고 이건 뭐 …. 거의 연구하면서 써야되는 수준이라 포기했다. 자바개발자 대부분 웹개발자고, 웹개발자들 어차피 js는 어느정도 할 줄 알테니 튜토리얼/도큐먼트 잘 나와있는 electron을 추천.
정~RCP를 해야겠다면 예제 참고
http://kosate.tistory.com/187
http://www.vogella.com/tutorials/EclipseRCP/article.html
https://www.nogdoo.com/article/E4.html

Eclipse RCP + Maven 조합 연구

2015년쯤에 갑자기 꽂혀서 찾아보다가…

포기했던 부분.

이클립스 RCP는 멀티플랫폼 애플리케이션 제작용인데

…..

구조 자체가 복잡하고 관련 자료도 별로 없다.

그리고 의존성 관리하는데 maven지원해주면 좋을 것 같은데 이런거 지원이 없었다.

지금은 gradle 지원이 되지 않을까???

근데 이제 새로 시작할거라면 Electron을 쓰는게 나아 보인다.

제대로 확인을 못 해보긴 했지만… 튜토리얼 돌렸을 때는 괜찮아 보였다.

 

——————————————————————————-

org.eclipsercp.hyperbola project running code with jdk7

메이븐적용은중단됨. 이클립스 플러그인/RCP제작에 maven은 적합하지 않음 tycho플러그인도 의존성을 관리해주기보다는 프로젝트 통합과 CI를 위한 역할만으로 한정되는 것으로 보임 p2업데이트사이트를 편리하게 제작할 수 있다고 하는데 이 부분은 조사를 못함 tycho : https://github.com/eclipse/tycho

이 문제를 해결하려는 몇가지 시도가 보이긴 한다.

  1. plugin을 따로 제작하여 이를 해결하려는 시도가 있었으나 편법에 가까운 방법을 사용하고있다.https://github.com/reficio/p2-maven-plugin
  2. 설정파일과 maven의 싱크를 억지로 맞추는 노가다작업

maven은 자체적으로 의존성을 관리하고 소스코드와 도큐먼트를 자동으로 링크시켜주는 부분이 편리해서 애용했는데 이 부분이 제대로 지원이 되지 않는다면 굳이 집착할 필요는 없어 보인다.

실리콘밸리 기업문화

인터넷 어디서 봤던거 메모

Facebook.
Eating your own dog food.

Apple.
“We can see around corner.” = 미래는 우리가 만들어서 보여주는 거지 묻는게 고객이나 사용자에게 질문하는 게 아니다.
Steve wants… Steve said…
극도의 장인정신을 가지고 제품과 서비스를 만들어서 이를 많은 사람들에게 제공함
실제 Apple 에서는 고객이 새로 제품을 받아서 처음으로 Unboxing 하는 경험을 굉장히 중요하게 여겨서 패키지의 재질과 박스를 여는 Task만을 하는 잡도 있다고 함

PIP(Perfomance Improvement Plan)라고 해서 3개월동안 구체적인 목표를 수치화해서 이를 달성하지 못하면 해고시킴

Python Anaconda – 버전관리? 환경구성?

https://conda.io/docs/user-guide/tasks/manage-environments.html

환경 목록

conda info –envs

환경 생성

conda create –name envname python=3.6

 

Activate the new environment:

  • Windows: activate myenv
  • macOS and Linux: source activate myenv

 

환경 삭제

conda remove –name envname –all

설치된 패키지 목록

conda list

Linux Chmod 스타일 권한 숫자 만들기.

JWT토큰 관련 설계를 만들다가

파라미터를 짧게 만들려고

웹사이트 화면이나 API에서 사용할 수 있는 권한의 종류는 생각보다 많지 않아서 미리 정의가능하다.

 

좀 더 나올수도 있지만

Chmod Style

여기서 숫자 규칙은..

어떤숫자 조합을 더해도 중복숫자가 없어야한다.

이 규칙에 따라 위의 정의된 권한에 숫자를 부여해보면

ex) WRITE = VIEW + READ + 1

이런 규칙으로 계산을 하면된다. 어차피 2씩 곱하는거나 마찬가지.

숫자를 더 줄일 규칙이 있는지 찾아봐야겠다.