목록java (45)
Welcome! Everything is fine.
인프런 강의 을 보고 정리한 내용입니다.매주 모여 각자 정리한 내용을 기반으로 발표하고 질문 공유하는 스터디입니다. 📘HashSet해시 코드 해시 자료 구조에 데이터를 저장하는 경우 hashCode() 를 구현해야 한다! 해시 인덱스는 배열의 인덱스로 사용되기 때문에 양의 정수만 사용 가능하다. 따라서 문자 혹은 객체의 경우 hashCode() 메서드를 통해 고유한 숫자를 만들고, 그 숫자를 이용해 해시 인덱스를 만든다. 문자열의 경우, hashCode() 메서드를 통해 문자를 기반으로 고유한 숫자를 만든다. 강의에서는 'A' - 65, 'B' - 66, 'AB' - 131와 같이 아스키 코드를 통해 각 문자에 고유한 숫자를 할당해 계산했다. 실제 자바의 String.hashCode()는 다음과 같이..
인프런 강의 을 보고 정리한 내용입니다.매주 모여 각자 정리한 내용을 기반으로 발표하고 질문 공유하는 스터디입니다. 📘List"의존한다" 라는 것은 무엇일까? 다음과 같이 MyList를 구현하는 MyArrayList와 MyArrayList를 만들었다.public interface MyList { int size(); void add(E e); void add(int index, E e); E get(int index); E set(int index, E element); E remove(int index); int indexOf(E o);}public class MyArrayList implements MyList { //...}public class MyLinke..
인프런 강의 을 보고 정리한 내용입니다.매주 모여 각자 정리한 내용을 기반으로 발표하고 질문 공유하는 스터디입니다. 📘빅오(O) 표기법 빅오(Big O) 표기법 : 알고리즘 성능을 분석할 때 사용하는 수학적 표현 방식으로, 데이터의 양의 증가에 따른 성능 변화 추세를 이해하기 위한 방법이다. 데이터가 매우 많이 들어오면 상수는 크게 의미가 없어지므로 빅오 표기법에서는 상수를 제거한다.O(1) : 상수 시간, 입력 데이터의 크기에 관계없이 알고리즘 실행 시간이 일정O(n) : 선형 시간, 알고리즘 실행 시간이 입력 데이터의 크기에 비례하여 증가O(n^2) : 제곱 시간, 알고리즘의 실행 시간이 입력 데이터의 크기의 제곱에 비례하여 증가O(log n) : 로그 시간, 알고리즘의 실행 시간이 입력 데이터의..
enum 사용하기LV.3 계산기 구현을 시작했는데, enum 타입으로 연산자 타입에 대한 정보를 관리해야한다는 요구사항을 보고 고민에 빠졌다. 처음에는 이런 식으로 하라는 건가? 했는데, 이미 Lv.2 계산기를 할 때 switch문에서 잘못된 연산자를 입력 받지 못하게 했기 때문에 enum을 왜 써야하는지 의문이었다. 사칙연산을 그대로 enum에 집어넣을 수 있다면 몰라도...?public enum OperatorType { ADD("+"), SUBTRACT("-"), MULTIPLY("*"), DIVIDE("/")} 알고보니 정말 집어넣을 수 있었다. enum 상수마다 동작을 다르게 정의해야 할 때 익명 클래스를 사용해 각 상수별로 고유한 메서드 구현을 할 수 있다.public e..
인프런 강의 을 보고 정리한 내용입니다.매주 모여 각자 정리한 내용을 기반으로 발표하고 질문 공유하는 스터디입니다. 📘제네릭이 필요한 이유다음과 같이 Integer 타입을 담고, 꺼낼 수 있는 클래스가 있다고 하자. Integer 타입 말고도 Double, Boolean, String 등의 다양한 타입을 담아야 한다면 어떨까? 각 타입에 맞는 새로운 클래스를 계속 만들어야 할 것이다. public class IntegerBox { private Integer value; public void set(Integer value) { this.value = value; } public Integer get() { return value; }} 만약 다음과..
인프런 강의 을 보고 정리한 내용입니다.매주 모여 각자 정리한 내용을 기반으로 발표하고 질문 공유하는 스터디입니다. 섹션 8, 섹션 9는 모두 중첩 클래스, 내부 클래스에 대한 내용이다. 우선 중첩(Nested)과 내부(Inner)라는 단어의 뜻과 그 차이에 대해 알아보자.중첩(Nested) : 어떤 다른 것이 내부에 위치하거나 포함되는 구조적인 관계. 나의 안에 있지만 내 것이 아닌 것.내부(Inner) : 나의 내부에 있는 나를 구성하는 요소. 나의 내부에서 나를 구성하는 요소강의에 나온 예시를 chatGPT에게 그려달라고 해보았다. 큰 상자 안에 전혀 다른 상자를 넣은 것은 중첩(Nested)이라고 한다. 사람의 심장은 내부(Inner)에서 사람을 구성하는 요소이다.📘중첩 클래스중첩 클래스는 st..
인프런 강의 을 보고 정리한 내용입니다.매주 모여 각자 정리한 내용을 기반으로 발표하고 질문 공유하는 스터디입니다.📘열거형 - ENUM타입 안전 열거형 패턴강의 예제를 실습하면서, 다음과 같이 문자열을 그대로 입력하는 방식은 몇 가지 문제점이 있었다.public class StringGrade { public static final String BASIC = "BASIC"; public static final String GOLD = "GOLD"; public static final String DIAMOND = "DIAMOND";} 1) 오타가 발생하기 쉽다.2) 유효하지 않는 값이 입력될 수 있다.3) 다양한 형식으로 입력될 수 있어 일관성이 떨어진다. 이러한 문제점을 해결하기 위해..
✅ 웹개발 기초 강의 듣기 학교 수업때 배운 희미하게 남아있는 기억들을 다시 되짚어보는 시간이었다. HTML/CSS는 솔직히 예전에도 그랬지만 조금 재미가 없다..ㅎ 빨리빨리 넘어가야지.웹의 동작 개념클라이언트 : 웹 브라우저를 통해 요청을 보내고, 받은 HTML 파일을 그려줌서버 : 요청을 처리하고, HTML, CSS, JavaScript, 이미지 등의 데이터를 클라이언트에 응답HTML 기초HTML(HyperText Markup Language) : 웹 페이지의 구조를 정의하기 위해 사용되는 마크업 언어. 웹 페이지의 뼈대를 만드는 역할.HTML은 크게 로그인 페이지 ID: PW: 로그인하기 CSS 기초CSS(Cascading Style Sheets) : 웹 페이지의 스타일과 레이아웃을 ..