일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 통계대학원
- Android 컴파일
- 데이터바인딩
- python3
- Kotiln
- gson
- Clean Architecture
- TabLayout
- kotlin
- 웹 크롤링
- LRU
- REST API
- TODO
- 안드로이드 플랫폼
- Java
- 안드로이드 API
- 수리통계
- Devexpress
- github api
- okHttp
- Android
- 셀레니움
- RETROFIT
- ViewModel
- FragmentStateAdapter
- 백준 15686
- ViewPager2
- RecyclerView
- 필답고사
- AndroidX
- Today
- Total
목록전체 글 (40)
그냥 가끔의 기록장
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cniHbS/btrAddqzZAV/l3NWj7Lv3k1Beznp4KVry0/img.gif)
https://soeun-87.tistory.com/32 [Kotlin] Todo 토이 프로젝트 [1단계] (ViewPager2 + RecyclerView + ViewModel) 아주 오랜만에 블로그에 글을 쓰는데, 최근에 진행한 Todo 토이 프로젝트를 순서대로 작성해볼까 한다. Github에 순서대로 commit도 했으니 참고하면 좋을 것 같다. 최종 결과물은 아래 움짤과 같다. soeun-87.tistory.com 앞 글에 이어 2단계로 토이 프로젝트를 마저 구현해 보자. 1. 단계별 코드 (1) RecyclerView Adapter 생성 - DoneFragment, PendingFragment 용 DoneFragment와 Pendingfragment는 각각 RecyclerView를 갖고서 Tod..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dLidb8/btrAdGTkuT2/kPhFdCQZYsHYTm5pJ950U0/img.gif)
아주 오랜만에 블로그에 글을 쓰는데, 최근에 진행한 Todo 토이 프로젝트를 순서대로 작성해볼까 한다. Github에 순서대로 commit도 했으니 참고하면 좋을 것 같다. 최종 결과물은 아래 움짤과 같다. (용량이 커서 중간에 짤렸지만 ㅠㅠ ADD, DELTE도 된다) 기능은 크게 Add, Delete, CheckBox Update 3가지다. 1. item들의 checkBox를 클릭해 done으로 체크되면 Done Tab으로 넘어가고, checkBox를 다시 클릭해 done이 해제가 되면 Pending Tab으로 item이 자동으로 이동된다. 2. Pending Tab에서 ADD TODO 버튼을 누르면 item이 새로 추가된다. 3. 각 item의 DELETE 버튼을 클릭하면 해당 item이 삭제된다...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/btlAT4/btroqReO1bn/B2LXneuvZyqaPW3RNJxhM1/img.png)
난 분명 안드로이드 하던 사람인데 9월에 입사한 회사에선 c#과 winform으로 반도체 제어, 신뢰성 검사하는 SW들을 만들고 있다. 정신 차려보니 안드로이드, Kotlin, Java, Python 다 까먹은 바보가 되어 있음..흑흑 입사하고 3개월 동안 수습 통과하겠다고 딴짓하고 공부안했더니 좀 심각하다. 오늘은 마침 사수님이 휴가라 할 일이 없어서 C# Winform으로 TCP/IP 통신, 채팅 프로그램을 연습해봤다. 사실 c#도 모르고 TCP/IP 통신도 잘 몰라서 https://yeolco.tistory.com/31?category=757612 이분 코드를 99%로 참고하였다.. 채팅 프로그램 코드 올리는 것도 좋지만, devExpress써서 간단한 프로젝트 생성하고 폼 만드는 것도 상당히 오래..
1. 셀레니움이란? 웹 애플리케이션 테스트를 위한 프레임워크로, 웹에 다양한 명령을 작동시킨다. 웹드라이버를 통해 웹의 자동화 테스트, 웹 자동화를 도와주는 라이브러리이다. 웹 크롤링을 검색하니 셀레니움이 가장 먼저 뜬 것을 보면, 셀레니움+파이썬 조합으로 크롤링을 굉장히 많이 하는 것 같다. 지원 브라우저는 파이어폭스, 인터넷 익스플로러, 사파리, 오페라, 크롬이 있다. 필자의 경우엔 셀레니움+코틀린 조합으로 사용했다. 2. 환경 세팅 (드라이버 필요) - Mac OS 1. chromedriver, 셀레니움 설치 크롬 드라이버 설치 링크: https://chromedriver.chromium.org/downloads 셀레니움 설치 링크: https://www.selenium.dev/downloads/ ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Ksy7y/btraex8ihhy/S7N6JfQCk56doy7umi2Q0K/img.png)
1. LRU 캐시 동작 방식 및 파이썬 실습 코드 가장 먼저, 캐시는 데이터 값을 미리 저장해 놓는 임시 저장소이다. 데이터를 미리 저장해 놓으면 계산이나 접근 시간 없이 빠르게 다시 요청되는 데이터에 접근할 수 있다. Cache 알고리즘 중에서 가장 유명한 알고리즘으로, Least Recently Used의 약어이다. (즉, 가장 최근에 쓰이지 않은, 오래된 데이터를 제거해서 캐시 메모리를 확보하는 방식) 캐시 메모리와 같은 컴퓨터 자원은 한정적이기에, 제한된 용량 내에서 데이터를 빠르게 접근할 수 있어야 한다. 이를 위해 여러 알고리즘이 존재하는데, LRU는 앞서 말한 것처럼 가장 최근에 쓰이지 않은 데이터부터 제거해서 새로운 데이처로 교체하는 방식이다. 일반적으로 LRU 알고리즘 구현은 Linked..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bD8QCl/btq91OKUd0x/cyrfpa8EyDQzXm9tI8O4uK/img.png)
1. 쉘 스크립트 실행해보기 1) ex_shell 문서 생성하기 touch 명령어로 ex_shell 파일을 생성한다. (명령어: touch ex_shell) 2) vi 편집기로 쉘 스크립트 작성하기 #!/bin/bash echo "hello world" exit 0 #!/bin/bash로 시작해서 exit으로 끝난다고 한다. 간단히 hello world를 출력하는 쉘 스크립트이다. exit 뒤에 나오는 숫자는 스크립트를 종료하면서 리턴하는 값인데, 0부터 255까지 가능하다. 일반적으로 unix 관행에서 성공은 0, 1~255는 오류 코드라고 한다. 3) 쉘 스크립트 실행시키기 ./파일명으로 실행시키면 된다. 실행결과는 아래와 같다. 2. 기본 명령어 1) cd change directory의 약어로, ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bIAMz1/btq9Y5kUz7V/3fzTIAGgsIAkevIlKBY0jK/img.png)
사담: git을 많이 쓰는데, 워낙 소스트리만 사용하다 보니까 명령어를 잘 모르기도 하고, 개념도 헷갈리는 듯해 정리를 하고자 했다. 가장 많이 쓰는 브랜치, commit, push, PR, fork 등을 정리해보았다. 당연히 검색해서 공식사이트랑 이것저것 좋은 블로그를 참고해 정리하고자 했으나 틀릴 수도 있으니..ㅜㅜ (틀린 내용은 지적해주시면 가능한 빨리 반영하겠습니다ㅜㅜ) 1. Git branch Git에는 branch가 있다. 각 브랜치는 독립적이라서 브랜치별로 작업을 하여, 동시에 여러 작업이 가능하다. 또 여러개의 브랜치들 중 하나를 다른 브랜치와 merge시켜서 새로운 브랜치를 만들 수도 있다. Git 저장소를 처음 만들면 master라는 브랜치만 존재한다. 새로운 브랜치를 추가하지 않는 이..
클래스의 인스턴스를 비교하는 방법으로 자바에서는 Comparable 인터페이스가 compareTo() 함수를 제공한다. 코틀린에서는 이걸 Comparable 인터페이스로 제공하고, 함수 extension도 가능하다. Function 1. compareTo() abstract operator fun compareTo(other: T): Int 호출 객체와 전달된 객체(passed object)를 비교하는 함수로, 둘이 같으면 0을, 전달된 객체 (passed object)가 더 크면 음수를, 전달된 객체가 더 작으면 양수를 반환한다. Extension Function 1. coerceAtLeast fun T.coerceAtLeast(minimumValue: T): T 호출된 객체가 특정 개체보다 큰지 아닌..