분류 전체보기

카테고리 없음

mac에서 Intellij 사용 시, 클릭이 안되고 계속 드래그 되는 경우 해결법

인텔리제이를 사용하면서 종종 사용 도중에 클릭이 안 먹히고 코드 뷰 부분에서 드래그만 되는 현상이 간헐적으로 발생하는 문제가 있습니다! 한/영 변환을 하면 문제를 간단하게 해결 할 수 있습니다.

도서/객체 지향의 사실과 오해

[객체지향의 사실과 오해] 협력하는 객체들의 공동체

오늘은 최근에 읽고 있는 객체지향의 사실과 오해라는 책에 대한 내용에 대해서 포스팅해보려고 한다. 해당 책을 읽으면서 "내가 정말 객체지향이라는 것을 잘 못 이해하고 있었구나." 라는 것을 깨달을 수 있는 좋은 책 인 것 같다. 실제로 시작은 우리가 객체지향을 공부하는 데에 있어서, 현실 세계를 모방하는 것으로 배우는 것으로 시작한다. 대부분의 객체지향을 입문하는 사람들은 객체에 대한 정의를 다음과 같이 배우게 될 것이다. 실세계에 존재하거나 생각할 수 있는 것 책은 과연 이 말이 맞는 말인가? 로 시작을 하면서도, 현실에 빗대어서 객체를 설명하는 이유에 대해서 알려준다. 객체를 현실에 비유하는 이유 1. 스스로 생각하고 스스로 결정한다는 특징 -> 이 자체는 상태와 행위를 캡슐화 하는 것에 대한 설명하..

Backend/Spring

프록시

다음 포스팅에 스프링 AOP에 사용되는 프록시 패턴과 데코레이터 패턴을 배우기 전에 해당 패턴에 사용되는 프록시란 무엇인지 자세하게 알 필요가 있을 것 같아서 프록시에 대해서 먼저 포스팅을 하게 되었습니다. 프록시 프록시 그 자체적인 의미는 대리자라는 의미를 가지고 있습니다. 프록시를 이제 객체에 대해 적용하느냐, 서버에 대해 적용하느냐에 대해서 이제 대리자로서 다르게 동작할 뿐입니다. 참고로 프록시 서버의 정의는 다음과 같습니다. 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램 출처 : 위키피디아 간접적이라는 말이 보이시죠? 클라이언트의 요청을 대리자로서 접속할 수 있게 해준다는 것입니다. 그럼 여기서 클라이언트라는 말이 나왔으니, ..

카테고리 없음

Intellij 특수 기능 Fn키를 눌러야 가능하게 변경하기

기존에 개발자 도구를 사용하는데 F12를 사용해야 하는데, Fn + F12를 누르는 것이 불편해서 Fn키를 눌렀을 때 특수기능이 수행되도록 변경한 적이 있습니다 그런데 인텔리제이의 shortcut 테스트를 하기 위해 다시 되돌릴려고 했는데, 키보드 탭에 해당 옵션이 보이지 않았어요... 열심히 찾아보니 깊숙한 곳에 숨어있어서 찾기 쉽지 않아보여서 포스팅합니다! 먼저 결론부터 순서대로 말씀드리면 다음과 같습니다! 시스템 설정 -> 키보드 -> 키보드 단축키 -> 기능 키 -> 해제 혹은 활성화 자세한 설명은 아래에 있습니다! 시스템 설정을 들어오면 다음과 같은 화면이 나옵니다. 여기서 좌측 아래에 내려가 보면 키보드가 있는데요. 키보드를 누르면 다음과 같은 화면이 나옵니다. 이어서 키보드 설정에 들어와서 ..

카테고리 없음

Intellij Mac OS Shift + F6 Rename 동작하지 않는 경우 해결 법

인텔리제이를 사용하는데, 어느 날 공부를 하다보니 Shift + F6 을 이용해서 똑같은 이름의 변수들을 빠르게 변경하는 모습을 볼 수 있었다. 따라서 사용해보려고 하는데, 동작을 하지 않는 문제가 있었다. 인텔리제이의 설정에서 keymap을 봐도 문제가 없었는데, 검색해보니 다음 포스팅에서 힌트를 알아낼 수 있었다. https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000087984-Shift-F6-rename-or-Shift-F-is-invalid (흠, 이상하게 북마크가 안된다.) FN keys are permanent for Intellij applications. 댓글 중에 다음과 같은 댓글을 볼 수 있었는데 설마해서 Fn +..

Backend/Spring

템플릿 콜백 패턴

이전에 템플릿 메서드 패턴 포스팅에서 JdbcTemplate가 템플릿 메서드 패턴을 개선한 전략 패턴과 이를 이용한 스프링의 템플릿 콜백 패턴을 통하여 구현이 된다고 포스팅을 했었는데, 오늘은 그 템플릿 콜백 패턴이 어떻게 구성되는지 알아보는 시간입니다. JdbcTemplate 말고도, TransactionTemplate, RedisTemplate 등등 많은 부분에서 활용되기 때문에 해당 패턴을 이해하고 나면 이제 그림이 그려지실거라 생각합니다. 그럼 들어가기에 앞서서 먼저 콜백에 대해서 알 필요가 있습니다. 콜백이란? 프로그래밍에서 콜백(callback) 또는 콜애프터 함수(call-after function)는 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다. 콜백을 넘겨받는 코드는 이 콜백..

Language

전략 패턴

이전 포스팅에서 템플릿 메서드 패턴에 대해서 학습하였습니다. 템플릿 메서드 패턴의 가장 큰 문제는 자식 클래스가 부모 클래스를 상속 받음으로써 부모 클래스에게 강하게 의존한다는 것이 문제였는데요. 좋은 객체지향 설계 원칙에서 두 가지를 지키지 못하는 상황이 발생해 버린 것이죠. 그 두 가지는 다음과 같습니다. 상속보다는 구성을 활용한다. 인터페이스에 맞춰서 프로그래밍을 한다. 전략 패턴은 이러한 템플릿 메서드 패턴의 단점을 해결 한 방식입니다. 우선 정의부터 살펴보도록 할까요? 전략 패턴의 정의 알고리즘 제품군을 정의하고 각각을 캡슐화하여 상호 교환 가능하게 만든다. 이 전략 패턴을 사용하면 알고리즘을 사용하는 클라이언트와 독립적으로 알고리즘을 변경할 수 있다. 알고리즘 군 여기서 알고리즘 제품군 이라는..

Language

템플릿 메서드 패턴

템플릿 메서드 패턴은 생각보다 우리 주변에서 굉장히 많이 사용되고 있습니다. 그 중에서 백엔드에서 스프링을 사용한다면 데이터베이스와 연동해서 어떠한 작업을 할 때 JdbcTemplate 라고 들어봤을 거에요. JdbcTemplate는 템플릿 메서드 패턴의 단점을 해결한 전략패턴과 스프링의 템플릿 메서드 콜백 패턴을 이용한 방식입니다. 템플릿 메서드 패턴이란 GOF에서 말하는 템플릿 메서드 패턴의 정의는 다음과 같습니다. 알고리즘의 골격을 정의하고 일부 단계를 하위 클래스로 이전한다. 하위 클래스가 알고리즘의 구조를 변경하지 않고 알고리즘의 특정 단계를 재정의 할 수 있다. 어떤 얘기인지 잘 이해가 안될텐데 다음 예시 코드를 한 번 살펴봅시다. @Test void templateMethodV0() { lo..

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