우당탕탕 굴러간 2025년 상반기 정리 시작! 분명 2024년 4분기 정리 글을 적은 지 얼마 안 된 것 같은데 시간이 너무 빠르게 흘러가고 있다. 저번 글에도 적었지만, 매일 할 게 별로 없는 삶을 살아가고 있는데.. 막상 정리하면 나름 괜찮은 것 같기도 하다. 남들이 보기엔 갓생인데 내가 보기엔 걍생인 느낌? 🥲 그래도 복학 전에 하기로 했던 것들을 거의 다 끝내서 뿌듯하긴 하다. 🚀2025년 계획 점검2024년 4분기 정리 글 마지막에 적어둔 것들을 거의 다 하긴 했다. 코테 공부는 또 조금 하다가 말다가 하는 중이지만... 🙃1. 스프링 공부- 김영한 로드맵 부수기- 개인 프로젝트 시작하기- 제대로 된 팀 프로젝트 한 번만 더 해보기2. 코딩 테스트 공부- 강의 결제한 거 처리하기- 매일 푸..
1. 제16기 사회리더 대학생 멘토링 모집'사회리더 대학생 멘토링'은 CEO, 학계/산업 전문가, 석학, 언론인, 문화예술인 등 사회 각 분야의 리더들을 멘토로 모시고, 그분들의 경험과 지혜를 대학(원)생 멘티들과 공유하며 배움과 나눔의 정신을 함양한 미래 인재들을 양성해 나가는 한국장학재단의 멘토링 프로그램입니다. 사회 리더로부터 경험과 지식을 전수받는 멘티가 되어 새로운 배움의 기회를 넓혀갈 수 있는 최고의 멘토링 프로그램에 여러분을 초대합니다. 프로그램 개요 및 지원 대상a. 프로그램 개요활동 대상 : 사회 각 분야의 멘토와 전국 대학(원)생활동 기간 : 2025년 4월 ~ 11월활동 장소 : 장소 제한 없음활동 내용- 멘토의 운영계획에 따른 자율 팀 멘토링(월1 회, 최소 6회 이상 활동 필수)-..
활동을 이것저것 많이 하다 보니 블로그는 뒷전이 돼버려서 오랜만에 쓰는 글이다. 뭔가 하는 게 없어 보이는데 정리해 보면 나름 많은... 그런 삶을 살아가고 있다. 그래서 점점 정리를 미루는 중인 것 같다. 🤔 아무튼 UMC 8th에서 새로운 프로젝트에 참여하게 돼서 우선 정리해두려고 한다. 수상까지 파이팅! 🔥 1. PM Day부터 프로젝트 합격까지Ain 지부 PM Day5월 24일 토요일에 공덕 프론트원에서 Ain 지부 PM Day가 진행됐다. PM들이 자신의 아이디어를 발표하고, 개발자들의 질문을 받고 대답하는 방식으로 진행됐는데, 저번보다 규모도 크고 준비된 간식도 생겨서 편하게 들을 수 있었던 것 같다. 나는 프로젝트에 지원하기 전 PM들이 작성한 아이디어 기획서를 읽어본 뒤, 직접 써보고 ..
1. 순회자바가 제공하는 Iterable, Iteratora. 구조자바 컬렉션 프레임워크는 다양한 자료구조를 제공한다.자바는 컬렉션 프레임워크를 사용하는 개발자가 편리하고 일관된 방법으로 자료구조를 순회할 수 있도록 Iterable 인터페이스를 제공하고, 각각의 구현체에 맞는 Iterator도 다 구현해 두었다.Collection 인터페이스 상위에 Iterable 인터페이스가 있다는 것은 모든 컬렉션을 Iterable과 Iterator를 사용해서 순회할 수 있다는 것을 의미한다.Map의 경우, Key뿐만 아니라 Value까지 있기 때문에 바로 순회할 수 없는 대신, Key나 Value를 정해서 순회할 수 있다.keySet(), values() 메서드를 호출하면 Set, Collection을 반환하기 때문..
1. Map자바 맵a. 구조맵은 Key-Value의 쌍을 저장하는 자료구조이다.Map 인터페이스Key는 맵 내에서 유일하며, Key를 통해 값을 빠르게 검색할 수 있다.Key는 중복될 수 없지만, Value는 중복될 수 있다.Map은 순서를 유지하지 않는다.자바는 HashMap, TreeMap, LinkedHashMap 등 다양한 Map 구현체를 제공하며, 각 클래스는 Map 인터페이스를 구현하고 각각의 특성을 갖고 있다. b. 주요 메서드Map 인터페이스의 주요 메서드는 다음과 같다.Map은 Key와 Value를 하나로 묶을 때 Entry 객체를 사용한다.참고로, Entry는 Map 내부에 있는 인터페이스이다.Key 목록 조회Map은 Key 중복을 허용하지 않으므로 모든 Key 목록을 조회하는 key..
1. 해시(Hash)리스트(List) vs 셋(Set)리스트와 셋의 차이는 다음과 같다. 셋은 집합을 생각해 보면 더 쉽게 이해할 수 있다. 리스트(List)셋(Set)정의요소들의 순차적인 컬렉션유일한 요소들의 컬렉션순서 유지OX중복 허용OX특징인덱스 접근빠르게 요소 유무 확인예시장바구니 목록, 순서가 중요한 일련의 이벤트 목록회원 ID 집합, 고유한 항목의 집합 해시 알고리즘a. 데이터의 값을 인덱스로 사용하기해시 알고리즘을 사용하면 O(n)의 데이터 검색 성능을 평균 O(1)로 비약적으로 끌어올릴 수 있다.예를 들어, 배열에 있는 요소를 찾기 위해서는 반복문을 통해 배열의 모든 요소를 검사해야 한다. 따라서 배열에서 특정 데이터를 찾는 성능은 O(n)으로 매우 느리다. 대신 배열은 인덱스의 위치를 사..
1. Big O 표기법과 배열Big O 표기법빅오(Big O) 표기법은 알고리즘의 성능을 분석할 때 사용하는 수학적 표현 방식이다. 빅오 표기법을 통해 데이터 양의 증가에 따른 성능 변화 추세를 비교할 수 있다. 데이터가 클수록 추세를 볼 때 상수는 크게 의미가 없어지기 때문에 상수를 제거해서 표현한다.O(1)입력 데이터의 크기에 관계없이 알고리즘의 실행 시간이 일정하다.ex. 배열에서 인덱스를 사용하는 경우O(log n) = logarithmic알고리즘의 실행 시간이 입력 데이터 크기의 로그에 비례한다.ex. 이진 탐색O(n) = linear알고리즘의 실행 시간이 입력 데이터 크기에 비례한다.ex. 배열의 검색, 배열의 모든 요소 순환O(n log n) = logarithmic(hybrid) linea..
1. 제네릭 적용 및 용어와 관례제네릭 적용a. 제네릭 클래스를 사용한 클래스를 제네릭 클래스라고 부른다.이 기호()를 보통 다이아몬드라고 부른다.클래스명 오른쪽에 처럼 선언하면 된다. 여기서 T를 타입 매개변수라고 한다. 이 타입 매개변수는 이후에 Integer, String 등으로 변할 수 있다.클래스 내부에 T 타입이 필요한 곳에 T value처럼 타입 매개변수를 적어두면 된다.public class GenericBox { private T value; public void set(T value) { this.value = value; } public T get() { return value; }} b. 생성 시점에 원하는 타입 지..
1. 자바 예외 처리예외 계층자바는 프로그램 실행 도중 발생할 수 있는 예상치 못한 상황, 즉 예외(Exception)를 처리하기 위한 메커니즘을 제공한다. 이는 프로그램의 안정성과 신뢰성을 높이는 데 중요한 역할을 한다.자바의 예외 처리는 다음 키워드를 사용한다.try, catch, finally, throw, throws 그리고 예외를 다루기 위한 예외 처리용 객체들을 제공한다. 예외 계층 그림을 보면서 간단하게 알아보자.Object자바에서 기본형을 제외한 모든 것은 객체이며, 예외도 객체이다. 모든 객체의 최상위 부모는 Object이므로 예외의 최상위 부모도 Object이다.Throwable최상위 예외이며, 하위에 Exception과 Error가 있다.Error메모리 부족이나 심각한 시스템 오류와..
1. 중첩 클래스의 분류중첩 클래스는 클래스를 정의하는 위치에 따라 다음과 같이 분류한다. 총 4가지가 있고, 크게 2가지로 분류할 수 있다.정적 중첩 클래스 = static; 바깥 클래스의 인스턴스에 소속되지 않음내부 클래스 종류 = non-static; 바깥 클래스의 인스턴스에 소속됨내부 클래스 = 바깥 클래스의 인스턴스 멤버에 접근지역 클래스 = 내부 클래스 + 지역 변수에 접근익명 클래스 = 지역 클래스 + 클래스의 이름이 없는 특별한 클래스 실무에서는 중첩, 내부라는 단어를 명확히 구분하지 않고 중첩 클래스 또는 내부 클래스라고 부른다. 엄밀하게 이야기하면 static이 붙어있는 정적 중첩 클래스는 내부 클래스라고 하면 안 된다. 그러나 대부분의 개발자들이 둘을 구분해서 말하지 않기 때문에 상황..