본문 바로가기

전체 글74

[02] 객체지향의 사실과 오해 - 이상한 나라의 객체 객체지향 패러다임은 지식을 추상화하고 추상화한 지식을 객체 안에 캡슐화함으로써 실세계 문제에 내재된 복잡성을 관리하려고 한다. 객체를 발견하고 창조하는 것은 지식과 행동을 구조화하는 문제다. -레베카 워프스브록(Rebecca Wirfs-Borck)[Wirts-Brock 1990] 객체의 다양한 특성을 효과적으로 설명하기 위해서는 객체는 상태(state), 행동(behavior), 식별자(identity)를 지닌 실체로 보는 것이 가장 효과적이다. 상태 이상한 나라의 엘리스에서 엘리스는 작은 문을 통과하기 위해 특정 행동을 통해서 몸의 키를 늘리거나 줄인다. 부채질을 하면 키가 20cm 작아지고, 차를 마시면 30cm 커지는 등의 상태 변경이 일어난다. 엘리스의 키를 추정하기 위해서는 이러한 행동의 순서를.. 2023. 12. 27.
[01] 객체지향의 사실과 오해 - 협력하는 객체들의 공동체 시너지를 생각하라. 전체는 부분의 합보다 크다. - 스티븐 코비(Stephen R. Covey) 객체지향의 목표는 실세계를 모방하는 것이 아니다. 오히려 새로운 세계를 창조하는 것이다. 실세계 모방이라는 객체지향의 개념은 훌륭한 프로그램을 설계하고 구현하는 실무적인 관점에서는 부적합하지만 객체지향이라는 용어에 담긴 기본 사상을 이해하고 학습하는 데는 매우 효과적이다. 커피를 주문하는 과정은 캐시어와 바리스타, 손님의 역할과 책임 협력이라는 세 가지 개념이 한데 어울려 조화를 이루며 만들어 낸 것이다. 객체 지향의 가장 중요한 개념 세 가지는 역할, 책임, 협력이다. 협력 객체들의 요청과 응답이 각각 연쇄적으로 일어나며 일이 처리 된다. 역할과 책임 역할은 책임을 내포한다. 여러 사람이 동일한 역할을 수행.. 2023. 12. 26.
직장에서 쓸모 있는 고수의 업무노트 ## 법칙1 체면은 버리고 싸움닭이 되어야 할 때다 - 싸움닭 정신 = '엑스트라 원 마일' 정신 (남 보다 한 걸음 더 나아가려는 부단한 노력 - GRIT = 관심사를 분명히 하라, 질적으로 다른 연습을 하라. 높은 목적의식을 가져라. 그리고 희망을 품어라 - 당신이 힘든 시간을 지날 떄, 모든 것이 당신에게 반대하는 것처럼 보일 때, 당신이 단 1분도 더 참을 수 없다고 느낄 때, 결코 포기하지 마라! 왜냐하면 그 순간이 바로 그 경로가 바뀔 시간과 장소이기 때문이다. ## 법칙2 양으로 승부하라! 현실에서는 항상 호날두가 메시를 이긴다. - 혁신가들은 '스나이퍼'가 아니라 '람보형 인재(난사 = 다작)' ## 법칙3 딴지 걸기의 위력을 맛봐라 - 레드팀을 구성하라 (미 육군에서 블루팀의 승리를 돕기.. 2023. 11. 14.
[IntelliJ] Debugging 중 자꾸 springframework 메서드 안으로 들어가는 것 막기 IntelliJ 로 SpringBoot 를 디버깅 하면 특히 Controller 에 디버깅 포인트를 걸면, 자꾸 스프링 프레임워크의 Class 안으로 들어가서 짜증나는 경우가 있다. ( + ApplicationFilterChain...) 이를 막기 위해서는 Settings > Build, Execution, Deployment > Debugger > Stepping 에서 Add Pattern... 을 선택한 뒤 org.springframework.* 하고 org.apache.* 을 추가해주면 된다. 2023. 11. 6.
Windows11 + VirtualBox + Ubuntu + MariaDB MariaDB 로 개발할 일이 생겨서 , DB 를 설치하려고 했는데 로컬에다는 왠지 깔기 싫어서 Virtual Box 에 Ubuntu를 설치하고 MariaDB 를 설치한 후에 로컬PC(Windows) 에서 DataGrip 으로 접속한 과정을 기록합니다. 1.윈도우11에 Virtual Box 를 설치 2. Ubuntu를 설치 3. MaraiDB 를 설치 4. Local 에서 이 DB에 접속하는 과정을 정리한다. 더보기 실행환경 - Windows 11 - VirtualBox-7.0.12-159484-Win - ubuntu-22.04.3-desktop-amd64 1. VirtualBox 설치 https://www.virtualbox.org/wiki/Downloads 기본 설정으로 설치 2. Ubuntu를 설치.. 2023. 11. 1.
스프링부트 정적 리소스 절대경로/상대경로 설정 스프링부트로 사이트 개발 중 정적리소스를 불러오지 못해서 화면이 깨지는 문제가 발생했다. 계속 도메인/화면 주소에서 개발을 하다가 도메인/경로1/화면 주소에서 개발을 하니 css 와 js가 전부 깨졌다. 핵심은 th:src="@{/정적리소스경로(static 기준)}" [절대경로] 또는 th:src="@{정적리소스경로(상대경로)}" 로 바꿔주는 것이다. css, img 동일하다. 잘 정리되어 있는 글이 있어서 공유한다. https://ojt90902.tistory.com/732 Thymeleaf : 정적 리소스, URL 제대로 알고 사용하자 들어가기 전 토이 프로젝트를 하며 가장 어렵다고 느꼈던 부분은 타임리프에서 URL 링크를 적절히 사용하는 부분이었다. 어떻게 URL 경로를 걸어야 할지 굉장히 애매해서.. 2023. 8. 25.
무료 부트스트랩 템플릿 사이트 https://startbootstrap.com/ Start Bootstrap startbootstrap.com https://bootstrapmade.com/ Bootstrap Templates | Premium & Free Download | BootstrapMade Top Quality Bootstrap TemplatesDiscover an exceptional collection of Bootstrap Templates & Themes crafted with finesse. Explore our range of free and premium templates, designed to elevate your web presence. Introducing Append - A Modern Business.. 2023. 8. 17.
Lightsail 에 Django Crawler 배포하기 (23.08.02) AWS LightSail 에 Crawler 를 배포할 일이 생겨서, 배포했던 경험을 공유합니다. (Crawler 는 Python 으로 이미 개발되어서 Repository 에 올라가있다고 가정한다.) 1. AWS 계정 생성 후 카드 연결하고 Lightsail 인스턴스를 생성한다. Create an instance | Lightsail (amazon.com) https://lightsail.aws.amazon.com/ls/webapp/create/instance?region=ap-northeast-2 lightsail.aws.amazon.com 요금제를 선택하고 인스턴스의 이름을 정한다. 네트워크 탭에서 고정 IP 를 추가한다. - Django 의 경우 8000 번 포트를 열어준다. MobaXterm 을 설.. 2023. 8. 2.
[SpringBoot3] QueryDsl 설정 build.gradle 수정 implementation "com.querydsl:querydsl-jpa:5.0.0:jakarta" annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" } def querydslSrcDir ='src/main/generated' clean { delete file(querydslSrcDi.. 2023. 7. 30.