전체보기(214)
-
[파이썬 강좌] 방송 강의 목차
[ 방송 순서 ] 01강. 파이썬 소개 및 설치 02강. 파이썬 기초 - 1. 변수와 함수와 연산자 03강. 파이썬 기초 - 2. 자료형 - 숫자, 문자열 04강. 파이썬 기초 - 3. 자료형 (리스트, 튜플, 딕셔너리) 05강. 파이썬 기초 - 4. 자료형 (집합형, 불형) 06강. 파이썬 기초 - 5. 제어문 (if) 07강. 파이썬 기초 - 6. 반복문 (while, for) 08강. 파이썬 기초 - 7. 클래스와 모듈 09강. 파이썬 기초 - 8. 패키지 10강. 파이썬 기초 응용 - 1. 네트워크 (날씨 정보) 11강. 파이썬 기초 응용 - 2. 엑셀파일 읽어오기 12강. 파이썬 기초 응용 - 3. 데이터 시각화
2021.08.27 -
[Docker] 맥OS에 도커 설치 (mac docker install) - 맥에 우분투 설치 (1)
지난해까지 주력 모바일 앱개발자에서, 이제는 본격적으로 서버 사이드 개발과 아키텍쳐링으로 업무를 전환하는 시점에서 본격적으로 시도하는 서버사이드 개발의 첫 관문, 도커를 소개하고자 한다. 도커란? (위가 도커 이미지인데.. 고래위에 컨테이터를 적재했다고 동물학대라고는 안했으면 좋겠다...ㅜ) 나도 처음 서버개발을 시작했던 2011년도 즈음 겪었고, 이후에도 간간히 어깨너머로 봐온 상황이 있다. 개발회사에서 "서버 사이드 개발"을 하다보면 아마도 한번쯤은 아래와 같은 경험을 해보았을 것이다. (안해봤다면 좋은(?)회사~) 신이난다 신이나 흥이난다 흥이나 로컬 환경에서 코딩을 신명나게 하고나서 서버에 결과물을 처음으로 배포를 해야하는데, 아...그러고보니 나는 윈도우 PC인데 서버OS는 리눅스네.. (또는 ..
2021.02.02 -
안드로이드 마켓 배포를 편하게 해보자 "google publisher api v3"
안드로이드 앱 개발의 최종단계라고 할 수 있는 구글 플레이 배포. 앱이 1, 2개인 경우는 상관이 크게 없을지 모르나, 관리하고 있는 앱이 10개 이상을 넘어가기 시작하면 사용자 배포 이슈가 있을때마다 일일히 google play consoel 에 접속해서 앱을 배포하는 것이 얼마나 귀찮은 일인지는 현업을 뛰어보면 알 수 있다. 이때 구글에서 제공하는 "google publisher api v3" 를 사용하면 소스 단에서 바로 빌드하여 바로 업로드, 배포까지 논스톱으로 진행할 수 있다. 배포와 관련해서는 fastlane 이라는 스크립트 대체제가 있으나, 자바나 파이썬에 익숙하고 심플하게 관리할 운영툴을 만들고 싶다면 "google publisher api" 가 좋은 방법일 수 있다. 우선 공식 샘플 소스..
2021.01.24 -
자바 검색엔진 "아파치 루씬(lucene) 8.7.0" 적용기 - 2/2
1편 - kplog.tistory.com/285 지난 시간에 1개의 파일을 읽어서 해당 파일의 특정 단어의 위치에 대한 검색을 빠르게 하는 방법으로 "아파치 루씬" 도입을 고려했다. 테스트를 거듭한 결과, 역시 아파치 루씬의 단어 검색에 성공을 했고, 그 속도에 놀라게 되었다. 역시 코딩은 집에서 편하게 쉬는 시간(?)에 해야 해결이 잘되는 것 같은 것은 진리인가.. 우선 아파치 루씬을 구현하기 위한 큰 구조는 다음과 같다. *. 사전 필요 작업 (라이브러리 의존성 추가) implementation group: 'org.apache.lucene', name: 'lucene-core', version: '8.7.0' implementation group: 'org.apache.lucene', name: '..
2021.01.22 -
자바 검색엔진 "아파치 루씬(lucene) 8.7.0" 적용기 - 1/2
아파치 루씬은 보통 여러 파일을 인덱싱하여 해당 파일을 빠르게 찾는 용도의 레퍼런스가 많이 나와있으나, 현재 도전중인 것은 파일 1개안의 텍스트들을 행단위로 인덱싱하고 빠르게 찾기 위해 시도중이다. 허나 아래의 코드로 했을 경우, 단어를 찾지 못하고 있다. try { File file = new File("인덱스가생길디렉토리명칭.index"); Directory dir = FSDirectory.open(Paths.get(file.toURI())); Analyzer analyzer = new StandardAnalyzer(); IndexWriterConfig iwc = new IndexWriterConfig(analyzer); iwc.setOpenMode(IndexWriterConfig.OpenMode.C..
2021.01.20 -
파이썬 env: python\r: No such file or directory 오류
파이썬 실행시 env: python\r: No such file or directory 오류가 발생할때에는 vi로 해당 py 파일을 열어서 다음과 같이 명령모드로 실행 후 강제 저장, 종료한다 :set ff=unix :wq!
2021.01.17 -
iOS fastlane 기본 사용법
Xcode가 아닌 command 창에서 빌드 등을 자동화하는 fastlane 이라는 프로그램의 기본적인 빌드 명령어는 다음과 같다. (*. fastlane 은 안드로이드도 지원합니다 ) $bundle exec fastlane gym --workspace 프로젝트파일명(~.xcworkspace) --scheme 타겟명칭 --configuration Release --export_method export방법 --output_directory export위치 [ iOS의 fastlane 기본적인 설치 문서 ] - docs.fastlane.tools/getting-started/ios/setup/ *. 참고할만한 사이트 (1) 젠킨스와 fastlane 결합 : thebugcode.github.io/ios-con..
2021.01.15 -
유용하게 쓰이는 vi 명령어
실무에서 사용할때마다 정리하는 중입니다. *. vi 모드별 스크린샷 [ 이동모드 ] 1. shift 와 : 을 누르면 > 명령모드 2. a 를 누르면 > 현재커서 다음기준 편집모드 [ 편집모드(직접작성) ] 1. ESC 한번 > 이동모드 [ 명령모드(치환 등) ] 1. ESC 한번 또는 빠르게 두번 > 이동모드 ^, $ 등은 정규표현식의 첫, 끝과 같은 의미인듯.. ( ^x 문자열이 x로 시작한다. / x$ 문자열이 x로 끝난다.. ) 저장하고 종료 명령모드 :wq 이동모드 ZZ (ZQ는 저장안하고 종료) 문서 가장끝으로 가기 :$ 특정 - 현재라인을 복사해서 그 다음줄에 붙여넣기 (복사할 라인에서 명령모드로 변경후) :t. *. 현재라인에 특정라인을 복사할 경우 (10번라인 > 현재라인) :10t. 전..
2021.01.15 -
[센치한브이로그] 모델출사 - 미리크리스마스
#브이로그 #모델출사 #영상촬영 '로망스 작가'의 요청으로 오랜만에 모델분 영상출사에 다녀왔습니다 이번 모델분은 촬영경험이 많으셔서 그런지 특별한 요청을 드리지 않았음에도 자연스러운 포즈와 표정, 컨셉을 소화해주시는 프로페셔널한 모습을! 추운날씨에도 맨발투혼(?)을 보여주셔서 더욱 죄송했습니다... 슬리퍼라도 준비했어야했는데;;; 고생많으셨습니다~! *. 촬영은 미리 크리스마스 컨셉이었으나 제 영상은 간결하게만 편집하였습니다ㅎ
2020.12.06 -
[자바] 멀티쓰레드 병렬처리 - stream 방식 ExecutorService, Future 방식
(1) ExecutorService, Future, callable 자바 1.5 버전의 ExecutorService와 callable를 사용한 예시 newSingleThreadExecutor로 하였는데 newFixedThreadPool(숫자) 방식으로 하면 쓰레드 개수를 지정할 수 있다. ExecutorService executorService = Executors.newSingleThreadExecutor(); Set callables = new HashSet(); //리스트, 맵등 반복문으로 작업할 콜렉션 for(String key : map.keySet()) { callables.add(() -> { //원하는 동작 수행 return "result"; }); } //callables 들이 병렬처리된..
2020.11.24 -
[git] Xcode pbxproj merge conflict 해결방법
xcode의 최상위 프로젝트 관리 패키지인 .pbxproj의 경우 git 병합시 어떻게 병합할 것인가에 대해 난감한 경우가 많다. 혼자 작업을 하더라도 브랜치를 별도로 분기하여 병합할때 해당 패키지가 충돌이 나는 경우, 병합관련 사항을 기재한 .gitattributes 파일을 git에 추가하면 해결이 가능하다. $ vi .gitattributes 해당 파일에 *.pbxproj binary merge=union 내용을 추가후 저장.
2020.11.19 -
[센치한브이로그] 좋은 선생님을 만난다는 것
우리는 평생을 살면서 누군가에게 무언가의 가르침을 받습니다. 그것이 꼭 학교나 학원으로 규정짓지 않더라도 살면서 단 한번도 배우지 않은 적은 없습니다. 하지만, 시간이 흐를수록 시간이 없어서(바빠서) 필요성이 없어서 나는 알만큼 다 알아서, 살면서 도움이 되지 않아서라는 이유로 배움을 멀리하곤 합니다. 안녕하세요, 센치한개발자입니다. 오랜만에 동영상없는 브이로그입니다. 요즘 다시 또 방송을 못(안)하고 있는 이유가 제가 가르침을 드리는 시간보다 가르침을 받는 시간에 더 할애를 하고 있다는 변명으로 덮어질 수 있을지 모르겠습니다. 최근에 재개한 방송댄스 학원에 다니면서 안무를 익히고 그것에 빠져 사느라 다른 것들을 다 내려놓게 되었습니다. 에이 무슨 춤하나 추는데 다른 일을 못해~ 라고 하실 분도 계실수 ..
2020.11.06 -
[알고리즘] 5. 카데인(Kadane) 알고리즘 : 최대부분합 구하기
[ 1, -3, -1, 2] 와 같은 수의 나열 "수열"이 있다고 가정했을때 각 수들을 더했을때 가장 큰 수가 나오는 연속된 부분을 찾는 알고리즘을 카데인 알고리즘이라고 한다. 수열 알고리즘의 기초에 해당하는 문제로, 오래전 중등부 경시대회 문제로도 많이 출제되었다고 한다. 풀이의 핵심은, 1. 요소를 하나씩 더하기 2. 더한 값을 변수에 저장 3. 더한 값이 그 마지막 저장해놓은 변수값보다 크면 변수를 대입 이다. 자바 코드로 보자면, int[] nums = {1,-3, -1, 2}; public static int maxSubArray(int[] nums) { //배열길이가 1일떄는 더할것이 없으므로 0번지 그대로 반환 if(nums.length == 1) { return nums[0]; } //해당..
2020.11.04 -
아이폰12 safe area 변경사항
아이폰 12 와 아이폰 12 미니 버전의 safe area 가 변경 사항이 있다고 하여 원글을 찾아보았습니다만, 스토리보드 상에서 영역을 잡고 해당 영역의 contant를 건드리지 않았던 경우에는 크게 문제될 것은 없을 것 같고, 코딩으로 상단 영역을 44 등과 같이 다이나믹하게 고정 숫자로 잡는 방법으로 UI를 구성했다면 아이폰 12는 47, 아이폰 12 미니는 44 로 분기를 하셔야할 것 같습니다. 자세한 사항 : useyourloaf.com/blog/iphone-12-screen-sizes/
2020.10.29 -
[알고리즘] 4. 비트연산으로 2진수 덧셈 (XOR, AND, Shift, Binary Add)
분명히 공부했는데 분명히 본 적이 있는데 하면서 먼지쌓인 정보처리기사 책을 펼쳤더니 "그래 이거였어! 생각난다" 가 아니라 "내가 이걸 공부해서 합격했었다고..??!!"라는 충격을 먹은 적.. 없으신가요? (저는 오늘) 안녕하세요, 센치한개발자입니다. 이번 알고리즘은 방송없이 2진수 덧셈을 비트연산에 대해서 알아보려고 합니다. (방송으로 하려니 저도 말이 꼬여서.. ) 오늘 "뎃셈 "+" 연산을 사용하지 않고 비트연산을 통해 두 2진수를 더하는 원리를 저도 다시금 익히게 되었습니다. 일단 자바 소스부터 한번 보시죠~ public static void main(String[] args) { System.out.println(addBinaryPlus("1101","1011")); System.out.prin..
2020.10.29 -
iOS14 사진 앨범 권한 이슈 "PHPhotoLibrary"
ios14의 경우 사진 권한을 앱별로, 그리고 앱안에서도 "선택한 사진, 전체사진, 거부" 등으로 제어할 수 있게 되었는데 현재 개발 테스트간 파악한 바로는 이게 기능상의 맹점이 보인다. 사진 권한을 분명히, "선택한 사진" 또는 "거부"로 하였음에도 전체 사진을 불러올수 있는 상황이다. PHPhotoLibrary 의 authorizationStatus 을 통해 아래 변수 코멘트 처럼 권한상태(PHAuthorizationStatus)를 확인할 수 있는데, PHAuthorizationStatusNotDetermined = 0, // User has not yet made a choice with regards to this application PHAuthorizationStatusRestricted, /..
2020.10.21 -
[센치한브이로그] 아마추어 모델분 출사
최근 미드 갱스터와 수사물에 푹빠져서 이 장면에서는 차 뒤에 누가 타있겠군 뒤돌아서는 척 하면서 등뒤에서 배신을 하겠군 저 사람은 분명 다른 꿍꿍이가 있다는 방구석 추리의 정답률이 90%에 육박하고 있습니다. 안녕하세요 센치한 개발자입니다. 무언가 재미있는 방송 주제를 만들어야하는 고충을 안고 있으면서도 최근 다시 바빠져서 유튜브 방송을 못하고 있는 와중에, 지인 작가와 함께 모델분 영상촬영을 지원하러 나갔습니다. 많은 모델 지망생분들, 취미 활동을 하고 계신 직장인&사회인분을 응원합니다. 촬영 노하우나 촬영 협조 문의는 언제든 메일이나 댓글 주세요~
2020.10.18 -
[센치한브이로그] 서울 문화비축기지
절기가 이제는 우리나라 계절에 맞지 않는지 백로를 지나도 새벽 이슬이 내리지 않는 것 같지만이제 곧 추분에 다다르니 낮이 점점 짧아지는 건 분명하겠죠?...센치한 개발입니다.안녕하세요~ 오늘 눈을 떠보니 바람이 불고 날씨가 맑아오랜만에 소미니에 시동을 걸어 그동안 꼭 가보고 싶었던 서울 상암동의 문화비축기지를 다녀왔습니다-
2020.09.18 -
리트코드 문제풀이
하루에 하나씩 영단어를 외우면 1년에 365개의 단어를 외울 수 있지만, 2일째부터 하나씩 까먹으면 결국 마지막날 1개밖에 기억이 안나는 마법(?)이. . . . 센치한 개발자입니다. 안녕하세요~ 한달전부터 프로그래머스 사이트에서 문제풀이로 워밍업을 마치고 이제는 리트코드(leetcode)에서 easy 단계부터 알고리즘 문제풀이를 하고 있습니다. 최소한 하루에 1개는 하겠다는 목표로 하고 있는데, ( 사실 하루에 최소 5개 정도는 해야 일정을 맞출텐데.. ) 어려워서 안하는것도 아닌 이 핑계 저 핑계로 시간을 보내고 있습니다. 이 문제들도 계속 풀다보니 결국 수학 문제풀이, 핵심적인 로직, 어떠한 점을 간파하느냐의 싸움인 것 같습니다. 짧은 코드가 아니라 읽기 쉬운 코드가 아니라 내 "의도"를 알고 가장..
2020.09.17 -
[xcode] xcode 12 달라진 점 - 간단 리뷰
xcode 12 버전의 달라진 점을 간단하게 리뷰한 방송입니다. 이전 Delegate 방식의 프로젝트 생성 방식과 어떻게 다르게 프로젝트를 구성할 수 있는지 (3가지 조합) 차이점을 간단하게 살펴보겠습니다. ▶︎ 센치한개발자 강의 구독하기 : https://goo.gl/wPYaXG
2020.09.17 -
(20년09월 최신기준) androidx 프로젝트에 필요한 기본 dependencies - gradle
2020.09.16 일자 기준, stable 버전의 안드로이드 스튜디오로 최신 프로젝트를 생성시, 다음과 같이 모듈단의 build.gradle 의 의존성 버전들을 설정하면 개발 학습을 하실때 필요한 최소한의 기본적인 것들은 충돌없이 사용이 가능합니다. implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'com.google.android.material:material:1.0.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.1' implementation 'androidx.navigation:navigation-fragment:2.1.0' implementation '..
2020.09.16