티스토리

1chanhue1
검색하기

블로그 홈

1chanhue1

1chanhue1.tistory.com/m

1chanhue1 님의 블로그입니다.

구독자
1
방명록 방문하기

주요 글 목록

  • [TIL] 05.08 https://1chanhue1.tistory.com/entry/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EC%9D%B4%EB%B6%84-%EA%B7%B8%EB%9E%98%ED%94%84Bipartite-Graph%EB%9E%80 [자료구조] 이분 그래프(Bipartite Graph)란 ?이분 그래프의 개념이분 그래프(Bipartite Graph)는 정점을 두 개의 집합으로 나눌 수 있고, 같은 집합에 속한 정점끼리는 간선이 연결되지 않는 그래프입니다. 즉, 모든 간선이 한 집합의 정점에서1chanhue1.tistory.comhttps://1chanhue1.tistory.com/entry/%ED%95%B5%EC%8B%AC%EB%A7%8C-%EA%B3%A8%EB%9D%BC-%EB.. 공감수 0 댓글수 0 2025. 5. 8.
  • 핵심만 골라 배우는 젯팩 컴포즈 (chapter 18 ~20) 컴포즈 개요컴포즈는 앱 개발에 관한 완전히 새로운 접근 방식.컴포즈는 선언적인 동시에 데이터 주도적.컴포즈의 선언적 구문프로그래머가 선언만 하면 레이아웃 배치, 제한, 렌더링 방법에 관한 모든 복잡한 세부 사항은 컴포즈가 자동으로 처리.컴포즈의 선언은 계층적으로 구조화되어 있기 때문에, 재사용 가능한 서브 뷰를 조합함으로써 복잡한 뷰를 쉽게 만들 수 있음.명령형 프로그래밍 패러다임 (기존 안드로이드 XML + Java/Kotlin)기존의 명령형 패러다임은 트리형태로 뷰를 구성. 레이아웃 위에 텍스트 뷰, 버튼 등을 쌓아 뷰를 그림.UI를 업데이트 하기 위해 일반적으로 findViewById() 같은 함수로 트리를 탐색해 내부 상태를 변경함.xml을 inflating 하여 객체를 만들어 사용, 위젯들은 내.. 공감수 2 댓글수 1 2025. 5. 8.
  • [자료구조] 이분 그래프(Bipartite Graph)란 ? 이분 그래프의 개념이분 그래프(Bipartite Graph)는 정점을 두 개의 집합으로 나눌 수 있고, 같은 집합에 속한 정점끼리는 간선이 연결되지 않는 그래프입니다. 즉, 모든 간선이 한 집합의 정점에서 다른 집합의 정점으로만 연결됩니다이분 그래프의 특징- 이분 그래프인지 확인하는 방법은 BFS, DFS 탐색을 이용하면 된다.- 이분 그래프는 BFS를 할 때 같은 레벨의 정점끼리는 모조건 같은 색으로 칠해진다.- 사이클의 길이가 홀수이면 이분 그래프가 아니다. (예: 3개의 정점으로 이루어진 삼각형(사이클 길이 3)은 이분 그래프가 아니다)- 연결 성분의 개수(Connected Component)를 구하는 방법과 유사하다.- 모든 정점을 방문하며 간선을 검사하기 때문에 시간 복잡도는 O(V+E)로 그래.. 공감수 5 댓글수 0 2025. 5. 8.
  • [백준 1697] 숨바꼭질 with kotlin 문제수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다.수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오.입력첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다.출력수빈이가 동생을 찾는 가장 빠른 시간을 출력한다.package com.chanhue.algorithm.백준.실버import jav.. 공감수 1 댓글수 1 2025. 5. 4.
  • [android] 구글 권장 앱 아키텍처 중 UI Layer 란 ? UI Layer 란 UI Layer의 역할은 화면에 앱 데이터를 표시하는 것따라서, 사용자 상호작용(ex. 버튼 누르기) 또는 외부 입력(ex. 네트워크 응답)으로 인해 데이터가 변할 때마다 변경사항을 반영하도록 UI가 업데이트 되어야 함사실상 UI Layer는 Data Layer에서 가져온 앱 데이터를 시각적으로 보여주는 것에 관심이 있다.즉 정리하자면, 데이터가 변경될 때마다 "어! 데이터 바뀌었다!"하고 해당 변경 사항을 업데이트하고 반영하는 것이 UI 레이어의 역할이다. UI 레이어는 버튼을 누른다거나, 네트워크로부터 응답이 도착했다거나 등 상태 변화에 따라 변경 사항을 업데이트한다.UI Layer 에는 구성 요소 두 가지로 나눠짐- UI elements : UI 요소가 갖는 본질적인 상태 즉,.. 공감수 2 댓글수 0 2025. 5. 2.
  • [kotlin 프로그래머스] 우주신과의 교감 1774 (with kotlin) package com.chanhue.algorithm.백준.골드import kotlin.math.sqrtfun main() { // N: 우주신의 수, M: 이미 연결된 통로 수 val (n, m) = readLine()!!.split(" ").map { it.toInt() } // 각 우주신(혹은 황선자)의 좌표 정보를 저장하는 리스트 val node = mutableListOf>() // 이미 연결된 통로 정보 (정점 번호 쌍) val alreadyConnected = mutableListOf>() // 좌표 입력 받기 repeat(n) { val (x, y) = readLine()!!.split(" ").map { it.toInt() } .. 공감수 1 댓글수 0 2025. 4. 19.
  • [kotlin] 별자리 만들기 별자리 만들기 문제 및 입출력 풀이 접근 별자리를 잇는다? -> 그래프 형식으로 나오겠구나 ?선을 하나 이을 때마다 두 별 사이의 거리만큼의 비용이 든다고 할 때, 별자리를 만드는 최소 비용 -> 최소신장트리(MST)를 구축하면 되겠구나? 풀이 코드  package com.chanhue.algorithm.백준.골드import java.util.PriorityQueueimport kotlin.math.sqrtfun main() { val n = readLine()!!.toInt() val node = mutableListOf>() repeat(n) { val (x, y) = readLine()!!.split(" ").map { it.toDouble() } node... 공감수 1 댓글수 0 2025. 4. 12.
  • [kotlin, 프로그래머스] 최소신장트리 문제와 입출력최소 신장 트리 (Minimum Spanning Tree, MST)의 정의와 특징정의최소 신장 트리는 가중치가 할당된 무방향 그래프에서 모든 정점을 포함하면서 간선의 가중치 합이 최소가 되는 트리입니다.특징트리의 간선 수: (V - 1)개의 간선을 가집니다.사이클 없음: 트리 구조이므로 사이클을 형성하지 않습니다.가중치 최소화: 모든 정점을 연결하면서 간선의 가중치 합이 최소가 되어야 합니다.사용 예통신 네트워크 구축: 노드들을 가장 적은 비용으로 연결할 때 사용됩니다.최소신장트리(MST) 구현 방법 - 크루스칼 알고리즘, 프림 알고리즘 사용 크루스칼간선을 가중치 순으로 정렬 후, 작은 것부터 선택 (사이클 방지)간선 정렬 + 유니온 파인드 (Union-Find)프림정점 기준으로, 현재 트리.. 공감수 0 댓글수 0 2025. 4. 12.
  • [kotlin] 회의실 배정 문제 접근 방법회의를 끝나는 시간 기준으로 정렬겹치지 않는 회의만 선택그리디 알고리즘으로 최적의 결과 도출package com.chanhue.algorithm.백준.골드fun main() { // 회의의 개수를 입력받음 val n = readln().toInt() // 회의 정보를 저장할 리스트 (Pair: (시작시간, 종료시간)) val meetings = mutableListOf>() // 회의 정보 입력받기 repeat(n) { val (start, end) = readln().split(" ").map { it.toInt() } // Pair 생성자를 이용해 리스트에 추가 meetings.add(Pair(start, end)) .. 공감수 0 댓글수 0 2025. 4. 3.
  • [백준 / 골드4] 문자열폭발 with kotlin 문자열 폭발 풀이 과정 처음에 풀이를 진행했을 때 단순하게 replace를 사용하였다 ->  문제 조건 : 문자열의 최대 크기가 1000000이었고, 계속해서 최대 길이의 문자열을 만들어내야 함으로 메모리 초과가 발생하였다스택을 이용하여 풀이를 진행하였다. package com.chanhue.algorithm.백준.골드fun main(){ val s = readLine()!! // 원본 문자열 입력 val bomb = readLine()!! // 폭발 문자열 입력 // 스택으로 사용할 MutableList 생성 val stack = mutableListOf() // 원본 문자열의 각 문자를 순회하며 스택에 push for(c in s){ sta.. 공감수 0 댓글수 0 2025. 2. 5.
  • [kotlin, 프로그래머스] 조이스틱 조이스틱 코틀린 문제풀이문제 해결 코드 (kotlin) class Solution { fun solution(name: String): Int { val n = name.length // 이름의 길이를 저장 // 각 문자를 목표 알파벳으로 변경하는 데 필요한 조작 횟수 합산 val moveCost = name.map { char -> val up = char - 'A' // 'A'에서 목표 문자까지 위로 이동한 횟수 val down = 'Z' - char + 1 // 'Z'에서 역으로 이동한 횟수 minOf(up, down) // 최소 이동 횟수를 선택 }.sum() // 커서 .. 공감수 1 댓글수 0 2025. 1. 15.
  • [프로그래머스,kotlin] 디스크 컨트롤러 (우선순위 큐로 구현) import java.util.PriorityQueueclass Solution { fun solution(jobs: Array): Int { // Job 데이터 클래스 정의 data class Job(val requestTime: Int, val duration: Int, val id: Int) // 요청 시간 순으로 정렬된 큐 val requestQueue = PriorityQueue(compareBy({ it.requestTime }, { it.id })) // 작업 시간이 짧은 순서로 정렬된 작업 대기 큐 val taskQueue = PriorityQueue(compareBy({ it.duration }, { it.r.. 공감수 2 댓글수 0 2025. 1. 12.
  • [프로그래머스, 코틀린] H-Index class Solution { fun solution(citations: IntArray): Int { // 인용 횟수를 내림차순으로 정렬 val sortedCitations = citations.sortedDescending() // H-Index를 찾기 위한 변수 var hIndex = 0 // 정렬된 배열을 순회하면서 조건에 맞는 최대 h를 찾음 for (i in sortedCitations.indices) { if (sortedCitations[i] >= i + 1) { hIndex = i + 1 } else { break .. 공감수 0 댓글수 0 2025. 1. 10.
  • [프로그래머스] 가장 큰 수 (with kotlin) class Solution { fun solution(numbers: IntArray): String { // 숫자 배열을 문자열로 변환하여 리스트에 저장 var number = mutableListOf() // IntArray의 각 요소를 문자열로 변환하여 리스트에 추가 for (i in 0 until numbers.size) { number.add(numbers[i].toString()) } // 커스텀 정렬: 두 숫자를 이어 붙였을 때 더 큰 결과를 기준으로 정렬 number.sortWith(Comparator { a, b -> (b + a).compareTo(a + .. 공감수 1 댓글수 0 2025. 1. 10.
  • [kotlin 프로그래머스] 큰 수 만들기 (level 2) import java.util.Stackclass Solution{ fun solution(number: String, k: Int): String { var answer = "" var stack = Stack() var removeCount = k for (digit in number) { while (stack.isNotEmpty() && stack.last() 0) { stack.removeAt(stack.size - 1) // 스택의 마지막 숫자 제거 removeCount-- } stack.add(digit) // 현재 숫자를 .. 공감수 1 댓글수 0 2025. 1. 8.
  • [프로그래머스] 체육복 (kotlin) 1. Set으로 풀이. class Solution { fun solution(n: Int, lost: IntArray, reserve: IntArray): Int { var answer = n // 여벌이 있으면서 도난당한 학생 제거 val lostSet = lost.toSet() - reserve.toSet() var reserveSet = reserve.toSet() - lost.toSet() // 체육복 빌려주기 for (i in lostSet.sorted()) { when { i - 1 in reserveSet -> reserveSet -= (i - 1) .. 공감수 1 댓글수 0 2025. 1. 8.
  • [프로그래머스 kotlin] 프로세스 문제 설명운영체제의 역할 중 하나는 컴퓨터 시스템의 자원을 효율적으로 관리하는 것입니다. 이 문제에서는 운영체제가 다음 규칙에 따라 프로세스를 관리할 경우 특정 프로세스가 몇 번째로 실행되는지 알아내면 됩니다.1. 실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다.2. 큐에 대기중인 프로세스 중 우선순위가 더 높은 프로세스가 있다면 방금 꺼낸 프로세스를 다시 큐에 넣습니다.3. 만약 그런 프로세스가 없다면 방금 꺼낸 프로세스를 실행합니다. 3.1 한 번 실행한 프로세스는 다시 큐에 넣지 않고 그대로 종료됩니다.예를 들어 프로세스 4개 [A, B, C, D]가 순서대로 실행 대기 큐에 들어있고, 우선순위가 [2, 1, 3, 2]라면 [C, D, A, B] 순으로 실행하게 됩니다.현재 실행 .. 공감수 2 댓글수 0 2025. 1. 7.
  • [프로그래머스] 의상 (kotlin) class Solution { fun solution(clothes: Array>): Int { var answer = 0 val hashMap : HashMap = HashMap() for(i in 0 until clothes.size){ hashMap[clothes[i][1]]=hashMap.getOrDefault(clothes[i][1],1)+1 } answer=hashMap.values.fold(1,{acc,number->acc*number})-1 return answer }}1. 해시 맵을 사용하여 의상의 종류 갯수를 구해준다. 해시 맵의 key는 의상의 종류 이름(String)으로 하고, .. 공감수 1 댓글수 0 2024. 12. 29.
  • 내일배움캠프 안드로이드 4기 수료 후 솔직한 후기 이번년도 5월 말에 시작하여 4.5개월동안 교육을 받은 내일배움캠프가 저번주에 끝이 났다. 부트캠프 수강에 대해 고민을 하고 있는 사람들을 위한 솔직한 후기를 써보겠다 !내일배움캠프 이전의 삶 나는 전공자이다. 대학교 1,2학년에는 인공지능학과에서 코딩 기본기를 갖출 수 있었으며, 3,4학년에는 소프트웨어학과 복수전공을 통해 기본 cs 지식(컴네, 컴구, 운체, 데이터베이스) 등을 배울 수 있었다. 하지만 대학과는 별개로 취업을 위해선 공부가 따로 필요했다.나는 AI 컴퓨터 비전 개발을 대학교 시절 공부했으나, 나에게 잘 맞지 않았고,,  백엔드 (Spring)공부도 시도 해봤으나 잘 맞지 않았다.. 그러던 와중 안드로이드 개발을 졸업 프로젝트로 하게 되었다. 이게 나의 안드로이드 첫 입문이다 ! 내일배.. 공감수 12 댓글수 1 2024. 10. 13.
  • [TIL] 09.23 https://1chanhue1.tistory.com/entry/%ED%8A%B8%EB%9F%AC%EB%B8%94-%EC%8A%88%ED%8C%85-Android-12-%EC%A0%95%ED%99%95%ED%95%9C-%EC%95%8C%EB%9E%8C-%EA%B6%8C%ED%95%9C-%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%97%90%EC%84%9C-%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C-%EA%B6%8C%ED%95%9C%EC%9D%84-%EB%B6%80%EC%97%AC%ED%95%98%EB%8A%94-%EA%B2%BD%EC%9A%B0 [트러블 슈팅] Android 12 : 정확한 알람 권한 , 시스템에서 자동으로 권한을 부여하는 경우2022년 11월 1일 이후.. 공감수 1 댓글수 0 2024. 9. 23.
  • [트러블 슈팅] Android 12 : 정확한 알람 권한 , 시스템에서 자동으로 권한을 부여하는 경우 2022년 11월 1일 이후, 구글은 Android 앱이 Target SDK 31 (Android 12) 이상을 지원해야 Google Play에 업데이트가 가능하도록 정책을 변경했다. 이 정책은 앱 개발자에게 다양한 기술적 요구 사항을 도입하게 만들었으며, 그 중 하나는 정확한 알람(Exact Alarm) 권한입니다. 이번 글에서는 정확한 알람 권한에 대해 알아보고, 이를 어떻게 처리해야 하는지 자세히 살펴보겠습니다. 1. 정확한 알람(Exact Alarm) 권한이란?Android 앱에서 정확한 알람은 특정 시간에 정확하게 트리거되는 알람을 의미합니다. 이러한 알람은 AlarmManager를 사용하여 다음 메서드를 통해 설정된다.setAlarmClock()setExact()setExactAndAllowW.. 공감수 2 댓글수 0 2024. 9. 23.
  • [TIL] 09.19 https://1chanhue1.tistory.com/entry/%EC%BB%B4%ED%93%A8%ED%84%B0-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-OSI-7%EA%B3%84%EC%B8%B5%EA%B3%BC-TCPIP-4%EA%B3%84%EC%B8%B5%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90 [컴퓨터 네트워크] OSI 7계층과 TCP/IP 4계층에 대해서 알아보자 !네트워크에는 다양한 기기 간 통신을 위해 약속된 구조가 있다. 네트워크를 개념적으로 나눈 OSI 7계층과 실제 인터넷 통신에 사용되는 TCP/IP 4계층이다. 특히 해당 구조와 관련 용어들을 알아야1chanhue1.ti.. 공감수 1 댓글수 0 2024. 9. 19.
  • [트러블 슈팅] AlarmManager AlarmManagerAlarmManager는 특정한 시간과 주기로 Intent를 실행하는 기능을 제공한다.예를 들어, 정해진 시간에 사용자에게 Notification을 보내려고 할 때 AlarmManager를 활용할 수 있다. 원하는 시간에 AlarmManager를 통해 broadcast를 전송하도록 구현하고, 그 broadcast를 받은 receiver는 Notification을 발행하도록 구현하면 된다.특징지정된 시간과 간격으로 Intent를 실행한다.애플리케이션 외부에서 작동한다. 따라서 앱을 실행하고 있지 않을 때나 Doze 모드인 경우(Doze 모드를 깨우고) 특정 이벤트를 트리거할 수 있다. (Doze 모드는 절전 모드와 비슷한 개념)리소스를 효율적으로 사용할 수 있다. 애플리케이션 내의 백.. 공감수 3 댓글수 1 2024. 9. 19.
  • [컴퓨터 네트워크] OSI 7계층과 TCP/IP 4계층에 대해서 알아보자 ! 네트워크에는 다양한 기기 간 통신을 위해 약속된 구조가 있다. 네트워크를 개념적으로 나눈 OSI 7계층과 실제 인터넷 통신에 사용되는 TCP/IP 4계층이다. 특히 해당 구조와 관련 용어들을 알아야 데이터 송수신 과정을 이해하는데 도움이 된다. 이때 각 게층의 세세한 역할을 외우기보다는 전체적인 동작 흐름을 이해하는 것이 좋다. 실제 개발할 때 종종 마주하게 되는 개념들이고, 직무에 따라 네트워크 계층을 이해하고 있어야하기도 한다. OSI 7 계층 OSI 7계층(Open Systems Interconnection Reference Model 7 Layers)이란 국제 표준화 기구(ISO, International Orgamization for Standardization)에서 네트워크 통신이 이뤄지는 과.. 공감수 4 댓글수 1 2024. 9. 19.
  • [Android] 액티비티(Activity)와 생명주기(Lifecycle) 안드로이드 앱은 크게  Activity, Service, Broadcast Receiver, Content Provider 4가지 컴포넌트로 구성된다.각각의 컴포넌트들의 기능에 대해 간단히 설명하자면Activity는 화면에 보여지는 부분의 기능,Service는 화면이 없지만 동작하는 기능,Broadcast Receiver는 시스템에서 전달하는 알림을 수신하는 기능,Content Provider는 보안상의 문제로 선택적으로 시스템의 파일을 제공해주는 기능이라고 할 수 있다.  다시 말해서 Activtiy는 안드로이드 4대 컴포넌트 중 하나로 사용자와 상호작용을 하는 UI를 제공하는 역할을 합니다. Acitivty- 화면을 구성하는 가장 기본이 되는 요소- 자동으로 activity 와 매칭되는 xml을 생성.. 공감수 5 댓글수 3 2024. 9. 13.
  • [TIL] 09.11 https://1chanhue1.tistory.com/entry/Android-%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-4%EB%8C%80-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90 [Android] 안드로이드 4대 컴포넌트에 대해서 알아보자.안드로이드 4대 컴포넌트안드로이드의 4대 컴포넌트는 안드로이드 애플리케이션을 구성하는 주요 구성 요소들로, 각각의 컴포넌트는 특정한 역할을 수행하며, 시스템과 상호작용하는 방식이1chanhue1.tistory.com 공감수 1 댓글수 0 2024. 9. 11.
  • [Android] 안드로이드 4대 컴포넌트에 대해서 알아보자. 안드로이드 4대 컴포넌트안드로이드의 4대 컴포넌트는 안드로이드 애플리케이션을 구성하는 주요 구성 요소들로, 각각의 컴포넌트는 특정한 역할을 수행하며, 시스템과 상호작용하는 방식이 정의되어 있습니다. 안드로이드 4대 컴포넌트에는 액티비티(Activity), 서비스(Service), 방송수신자(Broadcast Receiver), 콘테트 제공자(Content Provider)가 있다.특징으로는 각 컴포넌트는 독립적으로 존재각 컴포넌트는 고유의 기능을 수행각 컴포넌트는 인텐트를 통해서 서로 상호작용 1. Activity (엑티비티)액티비티는 사용자가 앱과 상호작용하는 하나의 화면을 의미하며 사용자에게 드러나는 화면을 의미한다.Application에 화면이 하나도 없으면, 사용자와 상호작용 할 수 없으므로 적어.. 공감수 4 댓글수 3 2024. 9. 11.
  • [TIL] 09.10 https://1chanhue1.tistory.com/92 [운영체제] 운영체제의 메모리를 관리 전략운영체제가 메모리 관리를 해야 하는 이유:프로세스 간의 메모리 충돌 방지: 각 프로세스는 독립적인 메모리 공간을 가져야 합니다. 메모리 충돌을 방지하지 않으면 하나의 프로세스가 다른 프1chanhue1.tistory.comhttps://1chanhue1.tistory.com/93 [안드로이드] Hilt에서 @Binds와 @Provides의 차이@Binds vs @Provides공통점@InstallIn로 정의된 모듈 내부에서 종속성 주입을 위해 사용된다.@Binds : 인터페이스와 인터페이스의 구현체를 연결하는데에 사용된다.@Binds의 메서드는 추상 메서드여야 한다1chanhue1.tistory.com 공감수 0 댓글수 0 2024. 9. 10.
  • [안드로이드] Hilt에서 @Binds와 @Provides의 차이 @Binds vs @Provides공통점@InstallIn로 정의된 모듈 내부에서 종속성 주입을 위해 사용된다.@Binds : 인터페이스와 인터페이스의 구현체를 연결하는데에 사용된다.@Binds의 메서드는 추상 메서드여야 한다.고로 abstract 키워드를 요구한다.@Binds 메서드는 동일한 인터페이스에 여러개의 인터페이스 구현체를 연결할 수 없다.주입될 타입은 인터페이스이다.@Provides : 종속성 객체를 생성, 제공하는 메서드를 정의할 때 사용된다. (@Binds 외의 경우)종속성을 제공하는데에 의미가 있으므로, 반환값이 존재해야 한다.복잡한 종속성을 제공하거나 외부 라이브러리를 제공하는데에 사용된다.주입될 타입은 인터페이스, 클래스 등 다양하다. 공감수 0 댓글수 0 2024. 9. 10.
  • [운영체제] 운영체제의 메모리를 관리 전략 운영체제가 메모리 관리를 해야 하는 이유:프로세스 간의 메모리 충돌 방지: 각 프로세스는 독립적인 메모리 공간을 가져야 합니다. 메모리 충돌을 방지하지 않으면 하나의 프로세스가 다른 프로세스의 메모리를 덮어쓰는 문제가 발생할 수 있습니다. 예를 들어 A,B 프로세스가 동시에 실행되고 있는 상태에서 A 프로세스가 B 프로세스의 메모리를 침범한다면 끔찍한 일이 발생할 것이다. 효율적인 자원 활용: 메모리는 제한된 자원이기 때문에, 여러 응용 프로그램이 동시에 실행될 때 메모리 자원을 효율적으로 관리하는 것이 중요합니다.메모리 보호: 악성 코드나 잘못된 프로그램이 중요한 시스템 메모리를 침범하는 것을 방지해야 합니다. 프로세스 간의 메모리 공유: 일부 프로세스들은 메모리를 공유할 수 있어야 하는데, 이를 적절.. 공감수 2 댓글수 0 2024. 9. 10.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.