전체 글

I’m currently learning Android, ComputerScience, Algorithm and etc....
회고록

2024년 1년 나의 일상 및 취준 회고록

이 글은 저의 2024년 1월 ~ 12월까지의 회고록입니다.이전의 회고록은 https://superohinsung.tistory.com/193 귀한 분이 누추한 곳에 와주셔서 감사합니다.2024년 1월 ~ 2월 : 취업준비가 아닌 알바를?24년도 1월 ~ 2월까지는 취업준비가 아닌 알바를 해야만 했다. 작년 우테코와 싸피 그리고 지원했던 모든 회사에서 불합격 소식을 받고 멘탈이 나간 나는 사실 취업 걱정보다 지금 당장 통장 걱정이 앞섰던 것 같다.다행히 좋은 조건으로 인맥?을 통해서 좋은 알바를 하면서 퇴근 이후에 간간히 공부를 할 수 있었다.또한 이때 당시 ADSP를 도전했는데 안타깝게도 불합을 받았다.사실 지금 생각해보면 데이터분석, 인공지능 기초도 없던 내가 2일만 공부하고 시험 본 것이 무슨 자신..

BaekJoon

[BaekJoon] 15486번 퇴사2 (Java) 문제 풀이 [Gold 5]

문제https://www.acmicpc.net/problem/15486 어떻게 풀 것인가?주어진 날짜와 수익 배열을 통해서 최대 수익을 낼 수 있는 경우를 찾으면 되는 문제였다. 해당 문제는 Bottom-up 방식으로 1일부터 차례대로 최댓값을 갱신해주도록하면서 풀었다. 1일차 (N==1)dp[1] = 0,  // 1일에 얻을 수 있는 최대 금액 (max) // 다음날 nxt = 1 + T1 = 4 dp[4] = Math.max( dp[4], dp[1] + P1) = 10 // 1일을 마치고 4일에 얻은 최대 금액 10 저장  2일차 (N==2)dp[2] = 0,  // 2일에 얻을 수 있는 최대 금액 (max) // 다음날 nxt = 2 + T2 = 7 dp[7] = Math.max( dp[7], dp..

Android/Study

[Android] SearchView 사용기

이번에는 저번 프로젝트에서 사용했던 View에 대해서 또 다른 것을 정리를 해보려고한다. 바로 SearchView이다. 우리가 원하는 콘텐트 혹은 스트링을 찾기 위해서 사용하는 SearchView이다. 이를 실제로 Android에서 어떤식으로 사용하였는지 그리고 어떻게 사용할 것인지에 대해서 또 공부해보자. SearchView란SearchView는 안드로이드 애플리케이션에서 검색 인터페이스를 제공하는 위젯이다. 이는 사용자가 텍스트를 입력하여 데이터를 검색할 수 있게 해주는 기능을 제공하며, 주로 툴바나 액션바에 통합되어 사용된다. SearchView는 사용자의 입력을 받아 검색 쿼리를 처리하고 결과를 제공하는 역할을 한다. SearchView 사용기XML  app:iconifiedByDef..

Android/Study

[Android] WebView 사용기

지난 프로젝트에서 WebView를 사용한 적이 있었다.그래서 이번 포스팅을 통해서 WebView에 대해서 더욱 깊게 공부하고, 배워서 다음 프로젝트에서도 한번 사용해보자.  @SuppressLint("SetJavaScriptEnabled") override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) viewModel.bind(url) webView.settings.apply { this.setSupportMultipleWindows(false) // 새창 띄우기 허용 th..

Android/Study

[Android] WebSocket를 통해서 채팅 기능 구현 feat. Clean Architecture, Hilt

WebSocket이란지난번 포스팅으로 대체하겠다.https://superohinsung.tistory.com/352 [Web] WebScoket이란 무엇인가WebSocket이란WebSocket은 웹 브라우저와 서버 간에 양방향 실시간 통신을 가능하게 하는 프로토콜이다. 일반적인 Http 요청과 달리, WebSocket은 연결이 지속적으로 유지되어 서버와 클라이언트 간에 즉superohinsung.tistory.com Android Project에서 채팅 기능 구현기 + Clean Architecture + Hilt졸업작품에서 채팅기능을 구현해야하는 일이 있었다.실시간 채팅기능이었다.아래 코드와 함께 풀이를 한번 적어보겠다. 프로젝트는 우선적으로 클린아키텍처 기반의 Hilt를 사용한 의존성주입을 사용하였다..

Android/Study

[Android] android Github Actions CI/CD를 사용기

지난 프로젝트에서 Github Actions CI/CD를 사용한 적이 있었다. 오늘 포스팅에서는 사용했던 Github Actions CI/CD 코드를 분석하고, CI/CD가 무엇인지 또한 다음 프로젝트에서도 활용할 수 있도록 공부해보자. CI/CD란 무엇인가CI(Continuous Integration)와 CD(Continuous Delivery 또는 Continuous Deployment)는 소프트웨어 개발 프로세스에서 중요한 역할을 담당한다. CI는 코드 변경사항을 주기적으로 빌드하고 테스트하여 메인 저장소에 통합하는 것을 말한다.CD는 CI 과정을 통과한 코드를 자동으로 배포하는 단계로, Delivery는 승인을 통해 배포되고, Deployment는 자동으로 배포된다. CI/CD의 이점개발 과정의 ..

Computer Science/Web

[Web] WebScoket이란 무엇인가

WebSocket이란WebSocket은 웹 브라우저와 서버 간에 양방향 실시간 통신을 가능하게 하는 프로토콜이다. 일반적인 Http 요청과 달리, WebSocket은 연결이 지속적으로 유지되어 서버와 클라이언트 간에 즉시 메시지를 전달할 수 있다. 이는 실시간 채팅, 게임, 주식 시세 애플리케이션 등에 사용되는 기술이다. WebScoket의 원리HTTP 통신의 특징인 (연결 -> 연결 해제) 때문에 효율이 많이 떨어지게 되고, 웹 브라우저 말고 외부 플러그인이 항상 필요하게 되는 상황을 극복하고자 2014년 HTML5에 웹 소켓을 포함하게 되었다. 웹소켓은 클라이언트가 접속 요청을 하고 웹 서버가 응답한 후 연결을 끊는 것이 아닌 Connection을 그대로 유지하고 클라이언트의 요청 없이도 데이터를 전..

Computer Science

[CS] JPG 와 PNG에 대해서 알아보자.

Android에서 이미지 파일을 업로드하거나 수정 및 삭제 연산을 하는 경우가 많았다. 이에 어떤 확장자를 사용하는 것이 더욱 효율적일까에 대해서 고민을 하다가, 우선적으로 JPG와 PNG에 대해서 알아보고자 정리를 하였다. JPG란Joint Photographic Experts Group의 약자이다. JPEG 파일은 비교적 작은 크기를 유직하면서 1680만 개의 색상을 표현할 수 잇다. 다음과 같은 파일 확장자는 모두 JPEG에 해당한다.사실적인 사진을 일반 PC에서 사용할 수 있을 정도로 그래픽 파일을 압축하는 자체 표준이다. 사람의 눈으로 볼 수 없는 시각적 데이터를 제거하고 색상 변형을 평균화하는 손실 압축 개념을 내놓았다..jpg.jpeg.jpe.jif.jfif.jfi 장점JPEG파일은 대부분의..

Android/Study

[Android] ConstraintLayout의 장점

지난 날 ConstarintLayout이 무엇인가에 대하여 정리를 한 적이 있었다.https://superohinsung.tistory.com/231 [Android] ConstraintLayout 이란ConstraintLayout이란 ConstraintLayout은 부모 뷰그룹 안의 다른 요소들과의 상대적인 제약조건을 설정함으로써 화면에 배치되도록 하는 레이아웃을 말합니다. 기존의 레이아웃(Linear, Relative 등등)에 비superohinsung.tistory.com 그렇다면 오늘 ConstraintLayout의 장점에 대해서 알아보자. 가장 큰 장점으로는 뷰의 깊이(depth)를 줄일 수 있다. 이에 따른 2가지의 장점이 다시 따라온다. 성능 최적화예를 들어, 위와 같은 계산기 UI를 구현하..

Android/Study

[Android] RecyclerView LayoutManager에 대해서 공부하자

LayoutManager이란RecyclerView의 LayoutManager는 RecyclerView의 아이템을 배치하고 스크롤 동작을 관리하는 데 중요한 역할을 한다. LayoutManager를 사용하면 다양한 레이아웃을 쉽게 구현할 수 있습니다. Android에서 주로 사용되는 LayoutManager는 세 가지가 있다. LinearLayoutManager아이템을 수직 또는 수평으로 일렬로 배치한다.기본적으로 수직 방향으로 스크롤되며, 메서드를 통해 수평 방향으로 설정할 수 있다. 수직(세로) recyclerView.apply { layoutManager = LinearLayoutManager(context) }기본적으로 우리가 항상 보던 리사이클러뷰를 생..

Android/Study

[Android] RecyclerView에서 onCreateViewHolder와 onBindViewHolder의 차이

블로그에 지난 졸업프로젝트에서 했던 주요 기능부분을 기록으로 남기려고한다.조금? 오랜 시간이 지났지만 기억을 되살려서 기록을 해보자. 졸업 프로젝트에서는 다른 여타 프로젝트와 달리 RecyclerView에 대해서 사용할 일이 많았다.그렇다면 RecyclerView에서 자주 사용하는 메서드 onCreateViewHolder와 onBindViewHolder의 차이에 대해서 알아보자. onCreateViewHolder와 onBindViewHolderclass CommentAdapter( private val onClickMenu: (CommentItemUiState) -> Unit) : ListAdapter(diffCallback) { override fun onCreateViewHolder(..

Android/Study

[Android] DIP에 대해서 공부하자

Android DIP이란?dp(or dip)는 Density-independernt Pixels의 줄임말로 같은 면적에 포함되어 있는 물리적인 픽셀의 밀도로부터 독립적인 크기를 가진 픽셀 단위이다.그렇다면 픽셀은 무엇일까?화소라고도 하며, 디지털 이미지를 나타내는 데 사용되는 최소 단위이다.픽셀은 해상도와도 관련이 있는데, 동일한 이미지라 하더라도 픽셀의 수가 많은 것이 해상도가 더 높다. 즉, 아래와 같은 그림이 있을 때 왼쪽보다는 오른쪽이 해상도가 더 높다고 할 수 있다. 위와 같은 단위가 필요한 이유는 비슷한 크기의 스마트폰이더라도 해상도가 다르면 물리적인 픽셀 수도 다르기 때문이다. 자세히 설명하자면, 픽셀 단위로 button/폰트를 구성하면 화면의 픽셀 수가 많은 경우가 그렇지 않은 경우보다 보..

Tenacity_Dev
인성의 개발 공부 노트