본문 바로가기

전체 글268

[Android] ConstraintLayout GuildLine으로 화면 구성하기 부트캠프 최종 팀 프로젝트 기록 12  서론지난 포스팅의 splash screen 구현 이후, 다양한 오류들을 해결하고 있는 중이다.지금까지 로그인에서 로그인 진행 후 main으로 이동하지 않은 오류를 해결하면서 로그인 진행 중 circular progress bar를 띄우는 디테일 작업을 진행하였고,Android 12 이하의 버전에서는 splash screen dependency가 잘 작동하지 않는 문제가 있어서 Activity로 splash screen을 구성하고, 로그인 기능을 약간 손보는 작업을 진행했다.위 2가지의 작업은 포스팅으로 쓰기에는 애매한 감이 있었는데, 이번에 한 것은 포스팅으로 쓰기 좋은 것 같아서 이번에 작성해보려 한다. 이번에는 settings 화면을 구현하였다.myPage에 들.. 2024. 9. 23.
[Kotlin, S5] 백준 32344번 유물 발굴 유물 발굴(32344번)Silver 5#구현 #기하학https://www.acmicpc.net/problem/32344 문제 내용  문제 접근운동장에 a번 유물이 w, h 위치에 묻혀 있다.a번 유물 조각들의 위치 정보를 이용해 a번 유물의 예상 크기를 직사각형으로 정의한다.직사각형의 넓이가 가장 큰 유물의 번호와 그 넓이를 출력한다.만약 넓이가 동일하다면 유물 번호가 더 작은 게 더 우선이다. 유물의 예상 크기 직사각형을 구하는 방법은 아래와 같다.예를 들어 4개의 위치에 유물이 있을 때점 a, b, c, d가 유물의 위치라고 하면 유물의 예상 크기는 사각형 efgh와 같다.위 사진으로 가장 큰 x축(d)과 가장 작은 x축(a), 그리고 가장 큰 y축(c)과 가장 작은 y축(b)의 값을 이용해 위 도형.. 2024. 9. 23.
[Kotlin, B1] 백준 32343번 드랍 더 비트 드랍 더 비트(32343번)Bronze 1#그리디 알고리즘 #브루트포스 알고리즘 #비트마스킹2024 HICON 홍익대학교 프로그래밍 경진대회 B번https://www.acmicpc.net/problem/32343 문제 내용  문제 접근n자리의 2진수에서 각각 1의 개수가 a, b개인 2진수 2개가 주어질 때, 두 2진수의 xor 연산 결과가 제일 큰 경우를 구해야 한다.n자리의 2진수에서 나올 수 있는 수는 2의 n승에 - 1만큼 나온다.예를 들어 3자리의 2진수에서 나올 수 있는 최댓값은 2의 3승에 -1이므로 7이다. 1부터 7까지 나올 수 있다는 뜻이다. 그래서 1부터 n자리의 2진수에서 나올 수 있는 최댓값만큼 반복해서 반복되는 수를 2진수로 변환 후, 1의 개수를 확인해서 1의 개수가 a, b개.. 2024. 9. 23.
[Android] 공부일지(2024-09-20) 오늘 공부한 내용 정리(2024년 9월 20일)  코드카타 문제풀이폭탄 해체(9242번)https://rkdrkd-history.tistory.com/256 [Kotlin, S4] 백준 9242번 폭탄 해체폭탄 해체(9242번)Silver 4#구현 #문자열 #파싱https://www.acmicpc.net/problem/9242 문제 내용  문제 접근별 기호(*)와 공백으로 이루어진 숫자가 입력된다.숫자는 7 segment 숫자 표기법으로 이루어져 있다.그rkdrkd-history.tistory.com  면접 이론 학습 25일 차면접 이론 학습 25일 차정렬 알고리즘이 무엇인가? 정렬 알고리즘을 사용하는 이유는?정렬 알고리즘은 데이터들을 어떤 기준으로 나열시키는 알고리즘이다.정렬 알고리즘은 알고리즘을 배울.. 2024. 9. 20.
[Kotlin, S4] 백준 9242번 폭탄 해체 폭탄 해체(9242번)Silver 4#구현 #문자열 #파싱https://www.acmicpc.net/problem/9242 문제 내용  문제 접근별 기호(*)와 공백으로 이루어진 숫자가 입력된다.숫자는 7 segment 숫자 표기법으로 이루어져 있다.그냥 숫자를 파싱 해서 6으로 나누어 떨어지면 beer를 출력하고 그렇지 않으면 boom을 출력하면 되는 간단한 문제이다. 또한 암호가 무조건 7 segment의 숫자들만 나오는 것도 아니다.암호는 3 * 5의 형태로 1칸씩 공백을 띄고 주어지게 되는데, 3 * 5의 암호 형식을 지키지 않은 코드가 올 수 도 있다.그래서 위 2가지 상황에 맞는 처리(boom)를 해주어야 한다. 문제 해결 코드더보기import java.io.BufferedReaderimpor.. 2024. 9. 20.
[Android] 공부일지(2024-09-19) 오늘 공부한 내용 정리(2024년 9월 19일)  코드카타 문제풀이a^b(10827번)https://rkdrkd-history.tistory.com/253 [Kotlin, G5] 백준 10827번 a^ba^b(10827번)Gold 5#임의 정밀도 / 큰 수 연산https://www.acmicpc.net/problem/10827 문제 내용  문제 접근a에 소수가 들어오고, b에 지수가 들어올 때, a의 b제곱을 구하기.소수(a)의 b제곱이라, 소수를 정확히rkdrkd-history.tistory.com  가희야 거기서 자는 거 아니야(21771번)https://rkdrkd-history.tistory.com/254 [Kotlin, B1] 백준 21771번 가희야 거기서 자는 거 아니야가희야 거기서 자는 거.. 2024. 9. 19.
[Kotlin, B1] 백준 21771번 가희야 거기서 자는 거 아니야 가희야 거기서 자는 거 아니야(21771번)Bronze 1#구현 #문자열https://www.acmicpc.net/problem/21771 문제 내용  문제 접근가희(G)와 베개(P)가 입력될 때, 가희가 베개 위에 있으면 1, 아니면 0을 출력베개 위에 있는 조건이 G가 P에 걸쳐 있어도 베개 위에 있다고 친다. 1이 출력되려면 P의 영역 안에 G가 있어야 한다.그것을 확인하기 위해서는 P의 개수를 세면 쉽게 알아낼 수 있다.P의 개수가 P 영역의 넓이보다 작으면 G가 P 영역 안에 있다는 것을 뜻한다.입력 예제 1을 예로 들어 보자.11 115 4 6 10....GGGG.......GGGG.......GGGG....PPPGGGGPPP.PPPGGGGPPP.PPPPPPPPPP.PPPPPPPPPP.PPPP.. 2024. 9. 19.
[Kotlin, G5] 백준 10827번 a^b a^b(10827번)Gold 5#임의 정밀도 / 큰 수 연산https://www.acmicpc.net/problem/10827 문제 내용  문제 접근a에 소수가 들어오고, b에 지수가 들어올 때, a의 b제곱을 구하기.소수(a)의 b제곱이라, 소수를 정확히 계산할 BigDecimal을 사용한다.  문제 해결 코드더보기import java.io.BufferedReaderimport java.io.InputStreamReaderimport java.math.BigDecimalfun main() = with(BufferedReader(InputStreamReader(System.`in`))) { val input = readLine().split(" ") val a = BigDecimal(input.. 2024. 9. 19.
[Android] SplashScreen Api를 이용해 로그인 여부 확인 부트캠프 최종 팀 프로젝트 기록 11  서론오늘의 구현 기능은 자동 로그인 기능이다.Firebase Authentication을 사용 중이기 때문에 현재 FirebaseAuth의 currentUser.uid가 null이 아니면 사용자가 로그인되어 있다는 뜻이기 때문에 이 경우에는 MainActivity로 이동하고, 아닐 때는 로그인이 필요하기 때문에 SignInActivity로 이동하게 하는 기능이다.이 기능은 현재 구현이 되어 있지만, SignInActivity의 onStart lifeCycle 함수에 구현되어 있기 때문에 사용자가 이미 로그인을 했어도 SignInActivity를 보고 MainActivity로 넘어가게 되는 아주 사소한 이슈가 있다.이 이슈를 해결하기 위해 Android 12부터 사용.. 2024. 9. 17.
[Android] 공부일지(2024-09-13) 오늘 공부한 내용 정리(2024년 9월 13일)  코드카타 문제풀이멋쟁이 포닉스(25551번)https://rkdrkd-history.tistory.com/250 [Kotlin, B1] 백준 25551번 멋쟁이 포닉스멋쟁이 포닉스(25551번)Bronze 1#수학 문제 내용  문제 접근포닉스가 옷을 입는 규칙에서 눈여겨볼 것은 옷의 색이다.마스크와 티셔츠의 색이 달라야 하고, 티셔츠와 바지 역시 색이 달라야 한다.rkdrkd-history.tistory.com  모의 면접1차 모의 면접활동 내용 간단 정리어제 공부일지에 잠깐 언급한 모의 면접 예상 문제의 질문들을 기반으로 질문을 해주셨다.예상 질문 말고도 프로젝트 진행 중의 팀 내의 의사소통에 대해 추가적인 꼬리 질문을 던져주시기도 했다.오랜만에 하는 .. 2024. 9. 13.
[Kotlin, B1] 백준 25551번 멋쟁이 포닉스 멋쟁이 포닉스(25551번)Bronze 1#수학https://www.acmicpc.net/problem/25551 문제 내용  문제 접근포닉스가 옷을 입는 규칙에서 눈여겨볼 것은 옷의 색이다.마스크와 티셔츠의 색이 달라야 하고, 티셔츠와 바지 역시 색이 달라야 한다.그러면 옷을 입는 경우의 수가 2가지로 좁혀진다.검은색 마스크 + 흰색 티셔츠 + 검은색 바지흰색 마스크 + 검은색 티셔츠 + 흰색 바지위 2개의 경우만 문제의 1, 2번 규칙을 만족하는 복장이다.이 복장에서 같은 색의 옷을 연속해서 입지 않기 때문에 1, 2번을 번갈아가면서 입게 된다.또한 1번 사용한 옷은 다시 입지 않기 때문에 옷이 모자라게 되면 연속해서 옷을 고를 수가 없다. 문제의 4번째 규칙으로 구현의 힌트를 얻을 수 있다.한 종류.. 2024. 9. 13.
[Android] Firebase Google One-Tap login으로 마이그레이션 부트캠프 최종 팀 프로젝트 기록 10  서론이번에 코드 수정 사항을 스캔하다가 눈에 보이는 것을 발견했다.바로 GoogleSignIn, GoogleSignInClient가 deprecated 되어 있는 것을 발견했다. 이와 관련해서 자료를 찾아보다가 Google에 새로 출시한 one-tap sign in이라는 것을 발견했다.이 로그인 방법은 기존의 방법에 비해 다양한 장점을 가진다.한 번의 클릭으로 로그인이 가능하다.새 사용자는 앱 안에서 쉽게 계정을 만들 수 있다.기존의 비밀번호에 의존하는 방식의 로그인이 아니기 때문에 관련 보안 위협을 줄일 수 있다.개발하는 입장에서도 기존의 방식보다 코드가 간소화되어서 편리해진다.위와 같은 장점이 있는데 안 쓸 이유가 없지 않은가?바로 사용해 보자.  Google .. 2024. 9. 13.
[Android] 공부일지(2024-09-12) 오늘 공부한 내용 정리(2024년 9월 12일)  부트캠프 활동수료 후 취업지원 프로그램 소개활동 내용 간단 정리수료생들에게 취업 지원 제도를 소개하는 특강을 수강했다. 면접 이론 학습 22일 차Https의 특징Https는 HyperText Transfer Protocol over Secure Socket Layer의 약자이다.인터넷에서 사용하는 웹서버와 클라이언트의 인터넷 브라우저 사이에 문자를 전송하기 위한 통신 규약이다. 보안성이 높다는 특징을 가진다.http와는 다르게 통신하는 과정에서 전송 내용을 암호화함으로써 발신자와 수신자를 제외한 중간 매개체에서 통신 내용을 확인할 수 없어서 보안성이 높다.데이터 암호화에는 SSL 인증서를 사용한다. RecyclerView의 동작 원리RecyclerView.. 2024. 9. 12.
[Android] Kakao Login을 Firebase Authentication과 연결 부트캠프 최종 팀 프로젝트 기록 9  서론지난 포스팅과 연결된다.https://rkdrkd-history.tistory.com/244 [Node.js] Intellij, Vscode에서 Firebase Functions 개발을 위한 Node.js 프로젝트 세팅부트캠프 최종 프로젝트 기록 7  서론현재 kakao 로그인 기능을 구현하려 하고 있다.kakao login을 그냥 구현하는 게 아닌 firebase authentication과 연동해서 사용하려 한다.그러기 위해서는 firebase functiorkdrkd-history.tistory.com 지난 포스팅에는 firebase functions 개발을 위한 node js 환경 세팅까지 진행했다.오늘은 android에서 구현한 firebase funct.. 2024. 9. 12.
[Android] 공부일지(2024-09-11) 오늘 공부한 내용 정리(2024년 9월 11일)  면접 이론 학습 21일 차면접 이론 학습 21일 차HTTP의 특징과 문제점HTTP는 HyperText Transfer Protocol이다.World Wide Web(WWW)에 내재된 프로토콜이다. 클라이언트가 서버에 요청을 보내면, 서버가 요청에 대한 응답을 보내는 클라이언트-서버 구조로 이루어져 있다.서버가 클라이언트의 상태를 보존하지 않는다. 따라서 응답과 요청이 독립적이다. HTTP는 데이터를 암호화하지 않고 평문으로 전송하기 때문에 중간에 제 3자가 네트워크 상에서 데이터를 엿볼 수 있다. 개인 정보나 민감한 데이터가 노출될 수 있는 보안 취약점을 가진다.  Retrofit의 장점간단한 어노테이션을 통해 요청 메서드의 URL을 정의함으로써 코드가 .. 2024. 9. 11.
728x90