본문 바로가기

전체 글122

[디자인패턴] Design Pattern 의 효용과 종류 📌 Design Pattern 의 효용 자주 사용하는 설계 패턴을 정형화해서 이를 유형별로 가장 최적의 방법으로 개발을 할 수 있도록 정해둔 설계. 알고리즘과 유사하지만, 명확하게 정답이 있는 형태는 아니며, 프로젝트의 상황에 맞추어 적용 가능하다. A식으로 로직을 구성하면 템플릿 메소드 패턴. B식으로 로직을 구성하면 옵저버 메소드 패턴. : 해결하려는 문제가 무엇이느냐에 따라서 그에 적당한 구조를 선택해 사용한다. 📍 Gof 디자인 패턴 소프트웨어를 설계 할 때는 기존의 경험이 매우 중요하다. 사람들이 개발을 하면서 축적되온 지식와 패턴들을 공유하기 위해서 나온 것이 Gang of Four 의 디자인 패턴이다. 객체지향 개념에 따른 설계 중 재사용할 경우 유용한 설계를 디자인 패턴으로 정리해 둔 것이.. 2021. 6. 4.
[JAVA] 객체지향 5대원칙 / POJO JAVA 📌 SRP Single Responsibility Principle 단일 책임 원칙 클래스는 하나의 일에만 책임진다. 즉, 1개의 클래스에 하나의 역할만 가져야한다. 설계중인 프로그래밍에 클래스가 여러가지 역할을 가지고 있다면 검토 후, 불필요한 필드나 메소드를 제거해야한다. 예를들어 FileReader(String str)로 쓰이다가 -> FileReader(File file)로 매개변수 객체를 바꾸면 외부에서 쓰이고있던 FileReader는 변경이되었기때문에, FTP Client와 FileReader 또한 수정해줘야한다. . . 이 밖에도, FTP Client는 너무 많은 기능을 가지고 있다. 각각을 분리시킬 필요가 있다. 그렇게 되면 다른 새로운 모듈 (Local File Reader, HttpCl.. 2021. 6. 3.
[JAVA] 객체지향에서의 물리 객체와 개념 객체 / 응집도와 결합도 📍 객체지향에서의 물리 객체와 개념 객체 물리객체 실제로 존재하는 사물을 클래스로 정의한 객체를 뜻한다. ex) 자동차 렌탈 시스템 : 자동차, 고객, 직원, 사업장 정비소 등 ex) 급여 관리 시스템 : 직원, 월급통장 등 개념객체 웹 시스템에서의 Service에 해당되며, 이는 Business logic을 처리하는 부분을 의미한다. Business logic 에서는 여러 객체를 서로 상호작용 하도록 하게하며, 객체가 제공하는 오퍼레이션 method를 통하여 객체의 속성을 변경시킨다. ex) 사용자 관리 시스템 : 사용자 객체의 마지막 접속일자를 이용하여 계정만료, 비밀번호 초기화, 재등록 처리 등등 📢 객체 지향에서 대부분의 코딩은 각 객체에 기능을 정의하고 이를 business logic을 이용해 .. 2021. 6. 3.
[JAVA] Unresolved compilation problem / Clean / Vaildate 다른 클래스를 참조해서 메인에서 사용하려고 하는데 오류가났다' 보통 git이나 다른 곳에서 import해서 파일을 들여온 경우에 발생하는 에러다. 나 같은 경우 다른 프로젝트에 있던 클래스를 복붙해서 오류가 났다. 이때 복붙은 클래스를 이미 만들고 난 후, ctrl+c, v 한거다. 프로젝트 익스플로어 Project Explore 에서 ctrl+c, v 한 경우는, 이클립스가 자동 패키지 변경을 해주는데 이렇게 수동 클래스 생성 후 코드만 복붙하면 에러가 날 수도 있다. 보통 해결방법은 1. 프로젝트 Project > clean 2. tomcat clean, tomcat 디렉토리 clean 나는 1번 방법을 사용했다. clean 기능을 사용하기 전에, 확인해야할 게 있는데 '에러 타당성'이다. 실제로는 .. 2021. 6. 2.
[책] 데이비드 포스터 월리스 <끈이론> 끈이론 - 교보문고 강박적이고 우울한 사람을 끌어당기는 가장 고독한 경기, 테니스 | 빌 게이츠 선정 2016년 올해의 책“월리스는 이 산문에서도 쇠숟가락 구부리듯 언어를 다루는 기막힌 방법을 발견하고야 만다. www.kyobobook.co.kr 데이비드 포스터 월리스 글쓰는 일에 천재고 아니고를 따지고 싶지 않지만 그의 글을 읽다보면 저절로 인정하게 된다. 데이비드 포스터 월리스는 천재다. 월리스가 국내에 본격적으로 알려진 건 일 것이다. 그의 작품은 소설도 에세이도아니다. 가짜도 진짜도 아닌 것으로 그는 사람들을 웃긴다(정말 웃음이 터지는 글들이 많다). 실제 그가 겪은 일을 바탕으로 약간의 조미료를 더한 글들인데 거기에 어떤 '맛'이 있다. 어떤 작가 특유의 느낌이 나게하면서 사람들을 끌어당기는 어.. 2021. 6. 2.
[퍼옴] 당신은 소프트웨어 엔지니어가 아니다 당신은 소프트웨어 엔지니어가 아니다 한국에서 소프트웨어의 본질에 대해서 얘기하다 보면 소 귀에 경읽기와 같아 하고 싶지 않지만 가끔가다 얘기하고 싶게 만드는 자극적인 이벤트가 생긴다 . 그런 이벤트는 둘 중의 하나인데 www.ikwisdom.com 본문 中 그럼 도대체 무엇이 소프트웨어 전문가인가? 여기서는 이해하기 어려운 추상적인 영역으로 들어간다. Domain에 특화된 Hard Skill이 아닌 모든 소프트웨어 개발에 사용되는 일반적인 Soft Skill 분야인데 분석, 설계, 컴포넌트와 인터페이스의 이해, 협업 등 창조적이고 문화적인 요소가 중요하며 구체적으로 눈앞에 보여주기 어려운 영역이다. 인생에서 어떤 영역이든지 전문가가 되려면 구체적인 지식의 모음보다는 철학적이고 추상적이며 잘 보이지도 않는.. 2021. 6. 1.