목록분류 전체보기 (248)
S E P H ' S
HashSet, LinkedHashSet과 같이 해시 개념을 접목한 자료구조들에 대해서 알아보고 해시충돌과 같은 개념 또한 살펴보았다. 이번 포스트에서는 HashTable, HashMap에 대해서 알아볼 것이다. 추가적으로 해시 충돌 포스트에서 이를 해결하기 위한 여러 방법들이 있었는데 이 또한 더 자세히 알아보도록 하자. 그리고 자료구조 파트의 포스트가 매우 많기 때문에 이쯤에서 한번 [Java] 4. Collection (List, Map, Set) 포스트에서 전체적인 자료구조 흐름을 짚고 넘어오면 좋을 것 같다. HashTable, HashMap 두 자료구조 모두 공통된 특징을 갖고 있고 사용법도 유사하다. 둘 다 Map 인터페이스를 구현하고 있기 때문이다. Key, Value 구조로 데이터를 저장..
Spring 애플리케이션을 개발하면서 JPA를 선택하는 이유가 무엇일까? MyBatis로도 DB를 쉽게 다루고 동적 쿼리를 작성할 수 있는데 말이다. 이에 대해서는 먼저 ORM에 대해 이해하는 것이 필요하다. ORM ORM(Object Relational Mapping)을 직역하면 객체 관계 매핑이다. 말그대로 객체의 관계를 매핑한다는 말이다. 무엇을 매핑하는 것일까? 우리는 Spring, 즉 Java 코드를 작성할때, 객체 지향 프로그래밍으로 코드를 작성한다. (최대한..) 객체 지향 프로그래밍에서는 하나의 객체가 자신의 역할을 준수하며 책임을 다하고 메시지를 기반으로 여러 객체들과의 협력을 이뤄내면서 작동한다. 관계형 데이터베이스는 테이블을 사용한다. 객체 지향 프로그래밍의 객체 모델과 관계형 데이터..
인터페이스(Interface)와 추상클래스(Abstract Class)의 차이점 추상 클래스는 클래스 내에 하나 이상의 추상 메소드를 포함하거나 abstract로 정의된 클래스를 말하고 인터페이스는 모든 메소드가 추상 메소드인 경우이다. (Java 8에서는 default 키워드를 사용해 일반 메소드의 구현도 가능함) 두 개념의 차이는 명확하다. 생김새도 다르고 사용방법도 다르다. 그러나 역할이 비슷하여 혼동이 많이 오기도 한다. 추상클래스와 인터페이스 모두 상속받는 클래스 혹은 구현하는 구현체가 추상 메소드를 구현하도록 강제한다. 이렇게 보면 추상 클래스에 추상 메소드를 여러개 두거나 전부 추상 메소드만 두면 될 것 같은데 인터페이스가 존재하는 이유는 무엇일까? 비슷해보이지만 두 개념의 목적을 자세히 짚..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 주어진 n 과 tops로 인해 형성되는 모양을 4가지 모양의 도형으로 채울 수 있는 "경우의 수"를 구하는 문제이다. 문제를 보자마자 규칙을 찾아야 겠다는 생각이 들었다. 다행히 직관이 잘 얻어 걸렸던 것 같다. 우선 4가지 모양의 도형의 유형과 n과 tops로 형성되는 모양 간의 규칙에 집중했다. 채워야할 공간의 n번째 사다리꼴에서 가운데 뒤집어진 삼각형을 기준으로 아래 4가지 모양을 사용해서 채울 수 있다. 4가지 모양 1. 윗 정삼각형과 함께 덮여지는 마름모 2. 왼 정삼각형과 함께 덮여지는 ..