[Android/Kotlin] 주간 달력 만들기
·
공부/안드로이드
한 주씩만 나오는 달력임 스와이프 기능 없음 팀 프로젝트에서 주간 달력이 있었다. 깃허브 등 라이브러리를 사용해봤지만 여러 문제점이 있었다. 리사이클러뷰 : 오늘 날짜(ex. 21일)이 먼저 출력되지 않고 항상 1일부터 보임 뷰페이저 : 예전날짜/다음날짜 스크롤에 한계가 있음 (무한 불러오기 안됨) 이전/다음 날짜 무한으로 불러오게 하면 기기가 감당을 못하고 다운됨 뷰페이저 사용했을 때가 가장 근접하게 성공했지만... 불러올 수 있는 날짜에 한계가 있어서.. (ex. 최대 n년 전, n년 후까지로 설정을 미리 해야 함) 위의 사진처럼 화살표 버튼을 추가하고 버튼 누를 때마다 저번주/다음주 날짜 불러오게 하였다. 아래 링크가 뷰페이저로 성공했던 라이브러리다. 주간 달력뿐만 아니라 펼쳤다가 접는 달력 등 매..
[Android/Kotlin] fragment에서 fragment로 이동
·
공부/안드로이드
나는 버튼 클릭 시 이동하게끔 하였다. 클릭하고자 하는 버튼 이름 (뷰바인딩) : binding.gotoPotBtn fragment가 있는 액티비티 MainActivity 이동하려는 프레지먼트 PotFragment 전체 코드 binding.gotoPotBtn.setOnClickListener { (context as MainActivity).supportFragmentManager.beginTransaction() .replace(R.id.main_frm, PotFragment()) .addToBackStack(null) .commitAllowingStateLoss() }
[Android/Kotlin] 안드로이드 spinner(스피너) 배경색 적용
·
공부/안드로이드
예시 펼치기 전 배경을 정한다. 나는 xml로 만들었다. 펼치기 전 배경색 img_primary_inline.xml 펼쳤을 때의 배경색 img_primary_outline.xml 이제 스피너가 사용된 xml에 적용하면 된다. 펼치기 전 android:background="@drawable/img_primary_inline" 펼친 후 android:popupBackground="@drawable/img_primary_outline" 전체 코드
깃모지
·
공부/깃&깃허브
깃모지란? git + emoji 커밋 메세지를 작성하는 툴 커밋 메세지 가장 앞에 이모지를 통해 커밋의 목적과 의도를 명확하게 표현하여 가독성을 높임 사진처럼 한 눈에 파악하기 쉽다 사용방법 1. https://gitmoji.dev/ 사이트에서 각 이모지의 코드를 본다 2. 해당 코드를 복붙한다 예를 들어 🔥를 사용하고 싶다면 :fire: delete: 불필요 코드 라고 치면 실제 커밋에서는 🔥 delete: 불필요 코드 이렇게 뜬다 깃허브 데스크탑의 경우에는 자동완성이 되어 사용하기 더욱 편리하다
[운영체제] 프로세스와 스레드
·
공부/운영체제
프로세스와 스레드 프로세스 (Process) 운영체제로부터 자원을 할당받는 작업의 단위 이미지 출처 : https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html 프로그램(Program) 프로그램 : 컴퓨터에서 실행할 수 있는 파일 ex) *.exe, *.dmg 정적 프로그램 : 아직 파일을 실행하지 않은 상태 어떤 프로그램을 개발하기 위해서는 Java나 C언어 등의 언어를 이용하여 코드를 작성해서 완성함 즉 프로그램은 쉽게 말하자면 코드 덩어리임 프로세스(Process) 프로그램을 실행시켜 정적인 프로그램이 동적으로 변하여 프로그램이 돌아가고 있는 상태 컴퓨터에서 작업중인 프로그램을 의미 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개..
[운영체제] 메모리계층
·
공부/운영체제
메모리계층 메모리 CPU가 직접 접근할 수 있는 기억장치 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품 프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 함 메모리 계층 메모리 관련 세 가지 주요 특성인 용량, 접근 속도, 비용 간의 절충 관계를 파악해 필요에 따라 채택할 수 있게 나타낸 구조 컴퓨터의 설계에 있어 각각의 특징이 있는 서로 다른 여러 종류의 저장 장치를 함께 사용하여 최적의 효율을 낼 수 있게 함 상황에 맞게 여러 저장 장치를 각각 사용할 수 있도록 하여 저렴하고 성능 좋은 컴퓨터를 구현하는 설계 계층구조 아래로 내려갈수록 비트당 비용 감소 용량 증가 접근 시간 증가 (속도 느림) 처리기에 의한 메모리 접근 횟수 감소 계층구조 위로 올라갈수록 비트당 비용 증가 용량 감소 접..
[운영체제] 운영체제와 컴퓨터
·
공부/운영체제
운영체제와 컴퓨터 운영체제 (OS, Operating System) 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어 하드웨어를 관리하고 컴퓨터 시스템을 효율적으로 관리 응용 프로그램과 하드웨어 간의 인터페이스로써 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공 운영체제 종류 Windows : microsoft에서 개발한 운영체제 가장 인지도 높음 노트북 및 서버 시스템에서 주로 사용 그래픽카드와 같은 다양한 하드웨어 대응할 수 있음 인터페이스가 사용자 친화적 호환되는 응용 프로그램 많음 다른 OS에 비해 RAM을 많이 잡아먹으며 용량도 많이 차지함 masOS : apple 사에서 개발한 운영체제 mac 컴퓨터, 노트북에서 사용 시스템 안정성과 사용자..
[자료구조] 동적계획법(DP)
·
공부/자료구조 | 알고리즘
동적 계획법 동적 계획법의 개념 한 가지 문제에 대해 단 한 번만 풀도록 하는 알고리즘 똑같은 연산을 반복하지 않도록 함 복잡한 문제를 더 작은 하위 문제로 나누어 해결 중복 계산을 줄여서 계산 속도를 높일 수 있으며 경우의 수가 많은 경우에도 효율적으로 계산 가능 동적 계획법의 조건 겹치는 부분 문제 (Overlapping Subproblems) 동일한 작은 문제들이 반복하여 나타나는 경우 사용 가능 부분 문제의 결과를 저장하여 다시 계산하지 않을 수 있어야 함 해당 부분 문제가 반복적으로 나타나지 않는다면 재사용이 불가능하여 부분 문제가 중복되지 않는 경우 사용 불가 최적 부분 구조 (Optimal Substructure) 부분 문제의 최적 결과 값을 사용해 전체 문제의 최적 결과를 낼 수 있는 경우..