반응형

전체 글 106

[데이터베이스 개론] 데이터 모델과 연산

데이터 모델링  데이터 모델링과 데이터 모델의 개념 데이터 모델링 : 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정, 추상화 작업이 필요하다 개념적 모델링 : 현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업논리적 모델링 : 개념 세계의 데이터를 데이터베이스에 저장할 구조를 결정하고 이 구조로 표현하는 작업  데이터 모델 : 데이터 모델링의 결과물을 표현하는 도구로 개념적 데이터 모델과 논리적 데이터 모델이 있다 구성 요소- 데이터 구조 : 자주 변하지 않고 정적이다- 연산 : 값이 연산에 의해 변경될 수 있어 동적이다- 제약조건 : 구조적 측면의 제약 사항과 연산을 적용하는 경우 허용할 수 있는 의미적 측면의 제약 사항이 있다 데이터베이스 설계 = 개념적 데이터..

독서 2022.03.07

[데이터베이스 개론] 데이터베이스 기초 이론

데이터베이스 기본 개념  데이터베이스의 필요성 데이터 VS 정보데이터 : 현실 세계에서 단순히 관찰하거나 측정하여 수집한 값정보 : 데이터를 의사 결정에 유용하게 활용할 수 있도록 처리하여 체계적으로 저직한 결과물    데이터베이스의 정의와 특징 정의특정 조직의 여러 사용자가 '공유'하여 사용할 수 있도록 '통합'해서 '저장'한 '운영' 데이터의 집합공유 : 여러 사용자가 함께 이용통합 : 데이터 중복성을 허용하지 않는다저장 : 컴퓨터가 접근할 수 있는 매체에 저장운영 : 지속적으로 유지 특징실시간 접근 가능계속 변화동적인 특징이 있어 계속 CRUD하여 정확한 데이터를 유지동시 공유 가능같은 데이터를 동시에 사용하는 것도 지원, 다만 처리가 복잡내용으로 참조 가능주소나 위치가 아닌 데이터의 값으로 참조 ..

독서 2022.03.06

[열거 타입] Enum 공부하다 생긴 의문점 2가지

Enum 클래스 먼저 Enum 클래스의 코드를 살펴보겠습니다 public abstract class Enum implements Comparable, Serializable { private final String name; private final int ordinal; public final String name() { return this.name; } public final int ordinal() { return this.ordinal; } protected Enum(String name, int ordinal) { this.name = name; this.ordinal = ordinal; } public String toString() { return this.name; } public fin..

개발 2022.03.02

[SSAFY/싸피] 2월 교육 회고록

한 달 간의 회고 2월 15일에 첫 교육 지원금을 받게 되었습니다. 1월 5일부터 스타트 캠프를 시작했기 때문에 매월 말이 아닌 매월 15일에 지원금을 보내주는 것 같습니다. 1월 한달동안 제 자신을 극한으로 몰아 붙여 공부를 했었고, 그로 인해 2월 한달 동안은 체력적 한계와 더불어 번아웃이 자주 왔습니다. 사실상 자바 스프링을 배우기 시작한 시점이 작년 여름이었는데, 비전공자인 제가 다른 학생들은 4년간 스펙 쌓고 실력도 갖춰서 취업하는 IT 서비스 회사를 목표로 한 것이 그 이유 아닐까 합니다. 그래도 내가 하고 싶은 일, 내가 다니고 싶은 회사에 가기 위해 힘들어도 포기하지 않고 끝까지 공부할 생각입니다. 일주일 전부터 취업 공고가 하나 둘씩 나오고 있는데 최근 알고리즘을 빡세게 준비한 만큼, 코..

교육 2022.03.01

[Google HashCode] 2022 구글 해시코드 참가 후기

결론부터 말하자면.. 전 세계 10177팀 중에서 663등, 한국 54팀 중에서 15등을 했습니다. 첫 출전이고 준비 기간이 2일이었던 것을 생각해보면 정말 좋은 성과를 거두었다고 생각합니다. 대회 소개 Hash Code - Google’s Coding Competitions A team programming competition — you pick your team and coding language to solve an engineering problem. Are you up for the challenge? codingcompetitions.withgoogle.com 구글의 팀 기반 프로그래밍 경연 대회이며, 구글에서 실제로 직면했던 문제들을 간단하게 모델링한 상황을 해결하는 알고리즘을 구성하는 대..

대회 2022.02.25

[제네릭] 타입 안전 이종 컨테이너.. 이거 어디에 사용할까?

궁금증 이펙티브 자바 "아이템 33 - 타입 안전 이종 컨테이너를 고려하라"를 읽으면서 든 궁금증이다. 그래... 다양한 타입을 하나의 컬렉션 등에 넣기 위해, 예를 들어 Map의 key에는 클래스 리터럴 값을 넣고 value에는 Object를 받는다고 치자. 저 map에서 put과 get을 할때 메서드를 직접 구현해서 type.cast() 등을 활용해서 타입 안전하게 여러 타입을 넣을 수 있게 되었다. 교재에서는 이러한 동적 형변환으로 런타임 타입 안전성을 확보하는 방식을 java.util.Collections에 있는 checkedSet, checkedList, checkedMap 같은 메서드를 만들 때 적용했다고 한다. 그래 알겠다.. 이 래퍼들은 제네릭과 로 타입을 섞어 사용하는 애플리케이션에서 클..

개발 2022.02.21

[제네릭] 컬렉션이나 단일 원소 컨테이너에서 매개변수화 되는 대상은 무엇일까?

이펙티브 자바 "아이템 33 - 타입 안전 이종 컨테이너를 고려하라"를 읽는 도중, 한 구문이 이해가 되지 않았습니다. 다음은 이펙티브 자바 198쪽에 나오는 문단입니다. 제네릭은 Set, Map 등의 컬렉션과 ThreadLocal, AtomicReference 등의 단일원소 컨테이너에도 흔히 쓰인다. 이런 모든 쓰임에서 매개변수화되는 대상은 (원소가 아닌) 컨테이너 자신이다. 따라서 하나의 컨테이너에서 매개변수화할 수 있는 타입의 수가 제한된다. 컨테이너의 일반적인 용도에 맞게 설계된 것이니 문제될 건 없다. 예컨대 Set에는 원소의 타입을 뜻하는 단 하나의 타입 매개변수만 있으면 되며, Map에는 키와 값의 타입을 뜻하는 2개만 필요한 식이다. 저는 2번째 줄인 "이런 모든 쓰임에서 매개변수화되는 대..

개발 2022.02.20

[제네릭] 제네릭 메서드에 type parameter section이 존재하는 이유가 무엇일까?

이펙티브 자바 스터디에서 제가 발표한 아이템 31의 내용에 대해 스터디원께서 좋은 질문을 해주셨습니다. 바로 제네릭 메서드에서 type parameter section이 존재하는 이유가 무엇일까? 라는 질문이었습니다. 공식 문서 Generic Methods (The Java™ Tutorials > Learning the Java Language > Generics (Updated)) The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technolo..

개발 2022.02.14

[제네릭] Java에서 배열을 공변(covariant)으로 만든 이유는 무엇인가?

이펙티브 자바 스터디에서 제가 발표한 아이템 28의 내용에 대해 스터디원께서 좋은 질문을 해주셨습니다. 바로 Java에서 배열을 공변(covariant)으로 만든 이유가 무엇일까? 라는 질문이었습니다. 공변과 불공변 질문에 대한 답에 앞서 공변과 불공변에 대해 먼저 알아보도록 하겠습니다. 공변 (covariant) 정의 : 함께 변한다 배열은 공변입니다 Sub가 Super의 하위 타입이라면 배열 Sub[]는 배열 Super[]의 하위 타입이 됩니다 예시 코드 // 런타임에 실패한다 Object[] objectArray = new Long[1]; // 컴파일이 되어 버린다.. objectArray[0] = "Hello"; // 런타임에 ArrayStoreException을 던진다.. 위의 코드에서 배열은 ..

개발 2022.02.14
반응형