| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
- 막내의막무가내 코틀린 안드로이드
- 프래그먼트
- 막내의막무가내 알고리즘
- 막내의 막무가내 알고리즘
- 안드로이드
- 막내의막무가내 안드로이드 에러 해결
- 막내의막무가내 안드로이드
- 주엽역 생활맥주
- 막내의막무가내 프로그래밍
- 막내의막무가내 코볼 COBOL
- 막내의막무가내 목표 및 회고
- 막내의막무가내 코틀린
- 막내의막무가내 rxjava
- 안드로이드 Sunflower 스터디
- 2022년 6월 일상
- 부스트코스
- 막내의막무가내 SQL
- flutter network call
- Fragment
- 막내의 막무가내
- 프로그래머스 알고리즘
- 막내의막무가내 안드로이드 코틀린
- 막무가내
- 막내의막무가내 일상
- 안드로이드 sunflower
- 막내의막무가내 회고 및 목표
- 막내의막무가내 플러터 flutter
- 막내의막무가내
- 부스트코스에이스
- 막내의막무가내 플러터
- Today
- Total
목록전체 글 (578)
막내의 막무가내 프로그래밍 & 일상
제가느끼기에 좀 어려웠거나 기억에 잊혀진 질문을 많이하셨는데 기억이 날때 추후 도움이 되도록 기록해보겠습니다. (필기 형식으로 남기는거라 딱딱 + 반말 어투 죄송합니다 ㅠ) Q. 자기소개해바라 3번 더듬은듯, 호흡딸림 Q. 플젝에 주로 쓴 레이아웃 LinearLayout, ContraintLayout, FrameLayout 특징 설명해바라 -> 리니어레이아웃은 계층적으로 쌓아내려가는 레이아웃이라했고 컨스트레인트는 제약이나 체인줄 수 있는 뷰, 뷰와 뷰 상대적 거리 및 위치로 배치하는 레이아웃, 릴레이티브레이아웃 발전시킨 형태 프레임레이아웃은 겹치는 뷰들 처리할 수 있고 프레그먼트랑 액자에 사진끼우는걸로 예시 Q. weight 써본적있냐? -> dp하고 차이 말하면서 화면 크기에서 비율로 크기 정하고싶을떄..
최근 디자이너분과 공모전 협업중에 있습니다. 안드로이드에 해상도별로 이미지를 넣고 해당 이미지들을 묶어서 한번에 이름을 변경하거나 해상도 이미지 폴더의 이름을 변경하려했는데 할 수가 없었습니다. (밑그림 참고 rename이 없는...) 해결방법은 제플린에서 제가 Name을 고쳐서 다운받도록 하였습니다. 그 후 다시 리소스매니저에서 임포트하러..
[2021-04-07 업데이트] 매번 공지사항 들어가서 보기 귀찮아서 공지사항 앱을 1차로 만들어봤습니다. 추후 시간이 될때 클릭시 웹이 아닌 앱내에서 웹뷰로 띄워주거나 커뮤니티 기능도 추가해볼까 합니다. -> 업데이트 완료! MVVM 아키텍처를 적용 및 학습을 위해 대학교 공지사항 토이프로젝트를 만들어봤었는데 그것에 대해 복습 및 정리 해볼려고 합니다. API 를 사용한 것이 아니라 Jsoup 을 통해 크롤링하여 데이터를 가져온 것이기 때문에 레트로핏은 사용하지 않았습니다. 저도 배워가는 입장이라 수정이 필요한 부분을 지적해주시면 감사하겠습니다. 그래서 전체적인 프로젝트 구조는 다음과 같습니다. MVVM 의 장점과 단점은 다음과 같습니다. 장점: 뷰와 모델간의 의존성이 없고 MVP 패턴처럼 V-VM이 ..
https://programmers.co.kr/learn/courses/30/lessons/42884?language=java 코딩테스트 연습 - 단속카메라 [[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr 프로그래머스 LEVEL3 의 단속카메라 문제를 풀어봤습니다. ㅎㅎ 풀이 방법은 다음과 같습니다. 1. 종착지점을 기준으로 오름차순 정렬합니다. 2. 반복문을 통해 routes를 갖고옵니다. 3. 카메라 설치 지점과 현재 route의 진입 지점과 비교하여 카메라 설치 지점에 커버되는 곳이면 PASS 아닌 경우는 카메라 설치 지점을 현재 route 의 종착 지점으로 변경해주고 카메라 설치 개수가 한개 늘어납니다. 풀이는 다음과 같습니다. [Jav..
https://programmers.co.kr/learn/courses/30/lessons/43164#qna 코딩테스트 연습 - 여행경로 [[ICN, SFO], [ICN, ATL], [SFO, ATL], [ATL, ICN], [ATL,SFO]] [ICN, ATL, ICN, SFO, ATL, SFO] programmers.co.kr 프로그래머스 LEVEL3의 여행경로 문제를 풀어봤습니다.ㅎㅎ 이전 문제와 마찬가지로 탐색문제인데요. 이전 문제가 BFS 여서 그랬는지 BFS로도 풀 수 있겠다 싶어 처음에 BFS 로 접근했습니다. 솔직히 풀면서 너무 더러워져서 DFS 가 낫겟다 싶었는데 이왕 시작한거 끝을 볼려고 계속 풀었습니다...;; 코드는 다음과 같았는데요. 하지만 주어진 테스트케이스는 다 맞는데 제출시 ..
https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 프로그래머스 LEVEL3 단어 변환 문제를 풀어봤습니다. bfs 를 사용해서 풀이했습니다. 한 단어는 한 글자만 변경이 가능한 경우 변경할 수 변환할 수 있습니다. (탐색 조건) 1. 큐에 시작 단어를 넣습니다. 2. 단어들을(words) 불러오고 이미 사용한 단어가 아닌 경우 현재 단어와 한글자씩 비교하고 변환이 가능..
https://github.com/mtjin/algorithm_practice/tree/master/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4%20%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%20-bfs%2Cdfs- https://programmers.co.kr/learn/courses/30/lessons/43162?language=kotlin 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있�� programmers.co.kr BFS 를 사용하여 처음 연결된 ..
보호되어 있는 글입니다.
가볍고 쉽게 읽고 이해할 수 있는 디자인패턴 설명 예시 사이트를 정리하는 포스팅입니다. 궁금할 때 볼 사이트 정리를 위해 포스팅합니다. 1. 빌더 패턴 ( Builder Pattern) 빌더 패턴(Builder pattern)이란 복합 객체의 생성 과정과 표현 방법을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있게 하는 패턴이다. [위키디피아 참고] [간단요약] 빌더 -> 생성자매개변수에 해당하는 값 set 받음 -> 빌드 (객체[생성자] 반환) ex) 객체 생성 시 너무 많은 매개변수가 있으면 순서도 햇갈리고 데이터가 없는 경우는 null 로 넘겨주고 아무토록 코드 유지보수 및 가독성이 안좋습니다. (순서 실수하기도 쉽고) (코드 유지보수의 예로는 매개변수 하나만 늘어도 코드를 바꿀..
데이터베이스의 특정 아이디값이 아니라 넣어져있는 순서 즉 행 순서대로나 역순대로 가져오고 싶을 때가 있습니다. 저도 ROOM 이라는 안드로이드 데이터베이스에 그냥 넣어져 있는 순서의 역순으로 가져오고 싶었는데 다음과 같은 해결방안을 봤고 처음 보는거라 포스팅합니다. SELECT * FROM favorite ORDER BY 1 ASC 이런식으로 1(첫번쨰 컬럼을 의미합니다) 로 하고 ORDER BY 로 해주면 됩니다. !! 시간 데이터나 자동증가 id 로 했다면 이 컬럼명을 기준으로 ORDER BY 를 해주면 되지만 아닌 경우는 이렇게 불러올 수 있었습니다 @Query("SELECT * FROM favorite ORDER BY 1 ASC") fun getNotices(): Single 댓글과 공감은 큰 힘..
[2021-04-13 업데이트] 위와 같은 프래그먼트 위에 띄워줄 다이얼로그 프래그먼트를 직접 만들어봤습니다. 자바로는 만든적이 꽤 많은데 코틀린으로는 처음이여서 간단하게 기록하는 포스팅을 해볼까 합니다. 자바했던것을 기반으로 구현한거라 최상의 방법은 아닐 수 있습니다. (구글링해보니 코틀린 다이얼로그 프래그먼트 한국 자료는 거의 안보이더라고요) 코드를 보면 이해가 가실겁니다!! 먼저 다이얼로그 프래그먼트 xml 입니다. 다이얼로그 프래그먼트 입니다. (Dialog Fragment) getInstance() 통해 다이얼로그를 액비티이 또는 프래그먼트에서 다이얼로그 프래그먼트 인스턴스를 가져옵니다. EXTRA_NOTICE_SAVE 는 원하는 태그 값을 넣어주면 됩니다. ( 추가로 번들에 전달된 값을 통해 ..
[2021-04-13 업데이트] 맨 밑 추가 업데이트 내용을 참고해주세요 :) Business의 스펠링이 틀려 Refactor 로 클래스 이름 오타를 수정했었습니다. 그런데 프래그먼트가 제대로 안뜨는 현상이 발생하였습니다. 이유는 bottom_nav_graph 의 android:name 이름은 그대로였기 때문 입니다. Refcator 가 이부분까지 변경해주지는 않나봅니다. 그래서 수동으로 바꿔줬습니다. 원인 찾는데 시간좀 걸렸네요;; 아니면 제 단순 실수일 수 도 있습니다. 업데이트 [2020-06-21] 다 Refactor 됩니다. 그러나 데이터바인딩 클래스이름은 안바뀝니다. 그래서 해당 데이터바인딩 클래스 이름은 직접바꿔줬습니다. 댓글과 공감은 큰 힘이 됩니다. 감사합니다!!
[2021-04-13 업데이트] 맨 밑 마지막 내용을 참고해주세요 :) 제목 그대로 빌드시 나는 에러입니다. 4시간째 삽질중인데 도저히 안고쳐집니다. 구글링하고 모든 방법을 다해봤지만 안됩니다. 뭐 때문에 나는지도 모르겠고요. stacktrace 에러를 다 보고 구글링했는데 딱히 해결법이 안나오는중.. 일단 기록으로 남깁니다. 도저히 해결이 안돼서 친구보고온 담에 다시 정신차리고 봤더니 @BindingAdapter("setItems") fun RecyclerView.setAdapterItems(items: List?) { with((adapter as BachelorAdapter)) { this.clear() items?.let { this.addItems(it) } } } [수정] @BindingAda..
https://programmers.co.kr/learn/courses/30/lessons/12913?language=java 코딩테스트 연습 - 땅따먹기 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟�� programmers.co.kr 프로그래멋 LEVEL2의 땅따먹기 문제를 풀어봤습니다 ㅎㅎ dp 로 바로 접근하고 복잡한 문제가 아니라 빠르게 풀 수 있었습니다. 풀이는 다음과 같습니다. [Java] class Solution { int solution(int[][] land) { int answer = 0; for (int i = 1; i < ..
class BachelorNoticeRemoteDataSourceImpl : BachelorNoticeRemoteDataSource { override fun requestNotice(): Single { return Single.fromObservable( Observable.create { val bachNoticeList: ArrayList = ArrayList() val doc: Document = Jsoup.connect("https://computer.cnu.ac.kr/computer/notice/bachelor.do") .get() // Base Url val contentElements: Elements = doc.select("div[class=b-title-box]").select("a..
[2021-04-13 업데이트] https://jsoup.org/ jsoup Java HTML Parser, with the best of HTML5 DOM methods and CSS selectors. jsoup: Java HTML Parser jsoup is a Java library for working with real-world HTML. It provides a very convenient API for fetching URLs and extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors. jsoup implements the WHATWG H jsoup.org 학교 공지사항 불러오는 앱을 ..
https://programmers.co.kr/learn/courses/30/lessons/42888?language=kotlin 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 프로그래머스 LEVEL2 문제 오픈채팅방을 풀어봤습니다. ㅎㅎ 문제 풀이법은 HashMap으로 풀어야겠다고 바로 생각나서 쉽게 접근할 수 있었습니다. 1. HashMap 으로 마지막으로 추가 혹은 변경된 이름을 저장하게 합니다. uid를 key로 이름을 value로 2. 출력 문장을 만들어 줍니다. Levae는 두 단어인거 주의 3...
다음과 같이 안드로이드 스튜디오에서 duplicate class intelij 어쩌구라면서 무수히 많은 에러가 떴습니다 해결방법은 다음과 같습니다. configurations { implementation.exclude group: 'org.jetbrains', module: 'annotations' } 를 app 수준 gradle에 android{} 안에 넣어주면 됩니다. 감사합니다
https://programmers.co.kr/learn/courses/30/lessons/42585?language=kotlin 코딩테스트 연습 - 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 합니다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자릅니다. 쇠막대기와 레� programmers.co.kr (a) 레이저는 여는 괄호와 닫는 괄호의 인접한 쌍 '()'으로 표현합니다. 또한 모든 '()'는 반드시 레이저를 표현합니다. (b) 쇠막대기의 왼쪽 끝은 여는 괄호 '('로, 오른쪽 끝은 닫힌 괄호 ')'로 표현됩니다. 프로그래머스 LEVEL2 문제 쇠막대기를 풀어봤습니다. 간단히 설명하면 ( ) 는 레이저 나머지 ( ( ( , ) ..
https://programmers.co.kr/learn/courses/30/lessons/49994?language=java 코딩테스트 연습 - 방문 길이 programmers.co.kr 프로그래머스 LEVEL3 의 방문 길이 문제를 풀어봤습니다 ㅎㅎ 처음에 별생각없이 좌표를 칸으로 취급하고 바로 2차원 배열의 map, isVIsisted 하고 bfs queue 로 접근해서 풀었는데 한문제만 맞고 나머지 한문제는 틀리고 오답이 나왔었습니다. 바로 위와 같이 7번처럼 방문이 안되야하는데 된걸로 되서 잘못풀었단거를 꺠달았습니다. 그래서 어디서 어디로 왔는지 알아야했습니다. 이를 4차원 배열을 이용해서 풀었습니다. 1,2 차원 지점에서 3,4차원지점으로 이동했다는 것을 기록합니다. 문제 풀이방법이 더 간단해..