분류 전체보기

Dev/Java

[Java] IntelliJ 프로젝트 빌드 안 될 때 (Link Gradle Project)

깃에서 프로젝트를 클론 받은 후 인텔리제이로 파일을 열었는데 프로젝트가 빌드되지 않는 문제가 발생했다. 아예 자바 파일을 인식하지 못 하는 모습.. JDK 문제로 Gradle이 제대로 임포트 되지 않아서 발생하는 문제 같았다. 예전에도 겪었던 문제 같은데 다음부턴 잊지 않고 대처하기 위해 적어두려고 한다! (밑에 나오는 방법은 맥북 기준이다) 먼저 File > Project Structure > Project Settings > Project로 들어간다. 여기서 SDK와 Language level을 설정해 준다. 나는 우테코에서 요구하는 11 버전으로 맞춰주었다. 바로 밑에 있는 Moduls로 들어가 Language level을 위에서 선택한 버전으로 맞추어준다. 그리고 같은 창에 있는 Paltform ..

Dev/Java

[Java] 예외 테스트 코드가 실행되지 않을 때 (try-catch)

요즘 내 코드가 클린하지 못하다는 생각이 들어 작년 우아한 테크코스 문제를 풀어보고 있다. 2주 차 로또 문제의 필수 기능을 구현한 후 테스트 코드를 돌렸는데 해당 테스트 코드가 돌아가지 않았다. ERROR_MESSAGE는 "[ERROR]"이고, 예외를 던졌을 때 "[ERROR]"를 포함하고 있으면 되는 테스트 코드였다. 하지만 나는 로또 문제를 풀면서 생성되는 모든 에러에 [ERROR]를 붙여놨기 때문에 무엇이 원인인지 파악하기 힘들었다.. 그리고 30분 정도 구글링을 해서 문제점을 찾은 결과, 테스트 코드에서 내가 던진 예외를 못 받고 있었다. 즉, new로 생성된 에러를 잡아줄 catch문이 없었다.. 위처럼 에러를 생성해서 던지고 있는데 이 에러를 받아줄 catch 구문이 없었다... 때문에 여기..

Dev/Java

[Java] 일급 컬렉션(First Class Collection)이란?

객체지향설계 스터디를 참여하면서 정말 정말 부족한 점이 많다는 것을 깨닫고 있다. 특히 나는 객체지향적인 코드와 거리가 아주 먼 코드를 작성하고 있었다.. 덕분에 스터디가 많은 도움이 되고 있으며 이것들을 놓치지 않기 위해 정리하고자 한다. 그중 지난주 스터디에서 제일 많이 들은 일급 컬렉션을 정리하고자 한다. 일급 컬렉션이란? Colletion을 Wrapping 하면서, Colletion 외의 다른 멤버 변수가 없는 상태를 일급 컬렉션이라고 한다. 일급 컬렉션이란 단어는 '소트웍스 앤솔로지'의 객체지향 생활체조 파트에서 언급이 되어있습니다. 규칙 8 일급 컬렉션 사용이 규칙의 적용은 간단하다. 컬렉션을 포함한 클래스는 반드시 다른 멤버 변수가 없어야 한다. 각 콜렉션은 그 자체로 포장돼 있으므로 이제 ..

Book/객체지향의 사실과 오해

[객체지향의 사실과 오해] 05장 책임과 메시지

자율적인 책임 요청을 처리하기 위해 객체가 수행하는 행동을 책임이라고 한다. '증언하라'라는 책임은 자율성을 충분히 보장할 수 있을 정도로 포괄적으로 추상적이다. 하지만 '목격했던 장면을 떠올려라', '떠오르는 기억을 시간 순서대로 재구성하라', '말로 간결하게 표현하라'라는 상세한 수준의 책임들은 자율성을 제한한다. 메시지와 메서드 메시지를 전송할 때 추가적인 정보가 필요한 경우 메시지의 인자(argument)를 통해 추가 정보를 제공할 수 있다. 메시지가 곧 메서드이고 메시지의 인자가 매개변수이다. 예를 들어 왕이 모자 장수에게 어제, 왕국에서 목격한 것을 증언할 것을 요청하고 싶다면 다음과 같은 메시지를 전송할 것이다. 모자장수.증언하라(어제, 왕국) 다형성 : 서로 다른 유형의 객체가 동일한 메시..

Dev/Spring

[Spring] Error creating bean with name 'dataSourceScriptDatabaseInitializer'

문제 발생 @DataJpaTest를 사용하려던 도중 에러가 발생했다. 강의 내에선 이 에러를 짚지 않고 넘어갔기에 혼자서 해결해야 했다. (왜 나만 발생한 건지 의문이다.. 심지어 물어보시는 분들도 없었다..) Error creating bean with name 'dataSourceScriptDatabaseInitializer' 에러메시지만 읽었을 때 데이터베이스가 초기화되지 않았다는 것을 느꼈다. 그리고 구글링을 통해 dataSource를 Bean으로 등록하지 못했으니 database를 embedded 하고 싶으면 @AutoConfigureTestDatabase의 설정을 하라는 것을 알 수 있었다. 문제 원인 문제 원인을 파악하기 위해 내가 작성한 @DataJpaTest와 해결방법인 @AutoConf..

Book/객체지향의 사실과 오해

[객체지향의 사실과 오해] 04장 역할, 책임, 협력

협력 협력은 한 사람이 다른 사람에게 도움을 요청할 때 시작된다. 요청을 받은 사람은 일을 처리한 후 요청한 사람에게 필요한 지식이나 서비스를 제공하는 것으로 요청에 응답한다. 결과적으로 협력은 다수의 요청과 응답으로 구성되며 전체적으로 협력은 다수의 연쇄적인 요청과 응답의 흐름으로 구성된다. 이상한 나라의 앨리스 재판 속 협력 어떤 등장인물들이 특정한 요청을 받아들일 수 있는 이유는 그 요청에 대해 적절한 방식으로 응답하는데 필요한 지식과 행동 방식을 가지고 있기 때문이다. 그리고 요청과 응답은 협력에 참여하는 객체가 수행할 책임을 결정한다. 책임 객체지향의 세계에서는 어떤 객체가 어떤 요청에 대해 대답해 줄 수 있거나, 적절한 행동을 할 의무가 있는 경우 해당 객체가 책임을 가진다고 말한다. 책임과 ..

Book/객체지향의 사실과 오해

[객체지향의 사실과 오해] 03장 타입과 추상화

이전까지 객체지향을 공부하면서 중요하다는 것은 알고 있었지만 추상화가 무엇인지 정확하게 이해를 못 하고 있었다. 그런데 객체지향 사실과 오해에 너무 좋은 예시가 나와있었다. 전 세계 어디를 가더라도 지하철 노선도는 유사한 형태를 띠기 때문에 한 도시의 지하철 노선도를 이해하면 다른 도시의 지하철 노선도 역시 쉽게 이해할 수 있다. 초기의 지하철 노선도는 실제와 유사한 물리적인 지형 위에 구불구불한 운행 노선과 불규칙적인 역 간의 거리를 사실적으로 묘사하고 있었다. 문제는 이렇게 사실적인 정보가 오히려 지하철을 이용하는 승객들로 하여금 노선도를 이해하기 어렵게 만들었다는 점이다. 지하철 노선도 디자인에서 가장 중요한 것은 사실적으로 지형을 묘사했느냐가 아니라 역과 역 사이의 연결성을 얼마나 직관적으로 표현..

Book/객체지향의 사실과 오해

[객체지향의 사실과 오해] 02장 이상한 나라의 객체

앨리스의 상태를 결정하는 것은 행동이지만 행동의 결과를 결정하는 것은 상태다. 앨리스의 키를 결정하는 것 케이크 먹기와 부채질하기가 있다. 따라서 앨리스가 한 행동의 결과는 앨리스의 상태에 의존적이다. 앨리스는 상태를 가지며 상태는 변경 가능하다. 앨리스의 상태를 변경시키는 것은 앨리스의 행동이다. 앨리스는 어떤 상태에 있더라도 유일하게 식별 가능하다. 상태 어떤 행동의 결과는 과거에 어떤 행동들이 일어났었느냐에 의존 지난 많은 행동들을 토대로 결과를 판단하는 것은 너무 어렵기 때문에 결과를 쉽게 예측할 수 있는 상태라는 개념을 고안 프로퍼티와 프로퍼티 값 프로퍼티 : 객체의 상태를 구성하는 모든 특징이며, 변경되지 않고 고정되기 때문에 정적이다. 프로퍼티 값 : 시간이 흐름에 따라 변경되기 때문에 동적..

yo0oni
'분류 전체보기' 카테고리의 글 목록 (17 Page)