TIL
🚀 bitcamp TIL (21.08.18)
📌 37일차(2021-08-18,수) 팀 별 프로젝트 발표 요구사항 식별 방법 액터와 유스케이스 식별 방법 📌 알게 된 점 방법론(methodolgy) 어떤 사항에 대해 이론이나 경험적 사실을 정리하고 표준화 한 것. 표준화 개인이나 조직에 상관없이 일관성 있는 개발을 유지하고 협업을 수행할 수 있게 함. 주제선정 요구사항 식별 구현 할 기능 선정 구현 및 테스트 발표 관리할 수 있는 작은 단위로 쪼갠다. (요리 레시피) 그래야 시작과 끝이 명확하다. 너무 덩어리가 크면 관리가 어렵다 너무 덩어리가 작으면 관리가 번거롭다. 📌 팀별 주제 선정 - 1차 주제 선정 발표 - 반계령,배서연,하선영,김제이,김주창(2개) - 당근마켓, 스터디위더스 - 김태호,조주리,신현지,김진현(1개) - 멘탈케어 - 변민성,위..
🚀 bitcamp TIL (21.08.13)
📌 35일차(2021-08-13,금) 자바 객체지향 문법(eomcs-java/com.eomcs.oop) ex09(i ~ j): 인터페이스 활용 ex11(a ~ c:Exam0240): 중첩 클래스 사용 📌 알게 된 점 - 인터페이스 vs 클래스 vs 추상클래스 추상메서드를 재정의 하는 것도 오버라이딩이다. 패키지에 직접 소속된 클래스 = Top Level Class 필드와 메서드 static import (클래스명 생략가능) 중첩클래스는 static을 적지 않는다. import static 으로 미리 스태틱 멤버의 패키지 정보를 알려주면, 마치 같은 클래스의 멤버인양 클래스 이름 없이 사용할 수 있다. 인스턴스 메서드를 호출할 때 인스턴스 주소가 메서드의 내장변수인 this에 저장된다. 바깥 클래스의 인스..
🚀 bitcamp TIL (21.08.12)
📌 알게 된 점 concrete => 인스턴스를 생성할 수 있는 일반 클래스 추상 클래스의 목적은 서브 클래스에게 공통 필드와 공통 메서드를 상속해주는 것이다. 인터페이스의 메서드 중에서 서브 클래스가 구현해야만 의미가 있는 메서드의 경우 추상 클래스에서 미리 구현할 필요가 없다. 인터페이스는 객체 사용 규칙을 정의 메서드를 통해 객체(클래스)를 사용 인터페이스를 바꾸게 되면 인터페이스를 구현한 기존 클래스에 영향을 끼친다. 인터페이스의 메서드를 변경하거나 제거, 추가하는 순간 이 인터페이스를 구현한 모든 클래스들에서 컴파일 오류가 발생하게 된다. 자기가 만든 인터페이스를 다른 개발자들이 그들 프로젝트에 사용하는 입장이라면? not 읽을 때 !this.use 사용 상태가 아니라면 이라고 읽는다. true..
🚀 bitcamp TIL (21.08.11)
📌 33일차(2021-08-11,수) 자바 기본 클래스 사용법(eomcs-java/com.eomcs.basic) ex02: Wrapper, Date, Calendar 클래스 사용법 📌 알게 된 점 String 레퍼런스 = String 변수 (s 변수라고 한다) 클래스, 추상클래스, 인터페이스 퉁 쳐서 type이라고 부른다. primitive type은 다형적 변수로 활용할 수 없다. 함께 묶을 수 없다. primitive type를 Object 레퍼런스에 담기 위해서 등장한 wrapper 클래스 유사한 일을 하는데 객체 사용법이 다르다면 쓰기가 매우 불편하다. 유사한 일을 하는 객체에 대해 사용법을 통일하자. (메서드 이름을 통일하자) 객체를 사용한다 = 문맥에 따라 달라져야함 객체 사용을 통일한다 = ..
🚀 bitcamp TIL (21.08.10)
📌 31일차(2021-08-09,월) 자바 객체지향 문법(eomcs-java/com.eomcs.oop) ex07: 추상 클래스와 추상 메서드 자바 기본 클래스 사용법(eomcs-java/com.eomcs.basic) ex01: Object 클래스 사용법 📌 알게 된 점 전길남박사 - 아시아 최초의 인터넷 망 팀 버너스 리 - tcp/ip 해시 값 = 원본 파일과 같은 파일인지 비교한다. object toString() equals() hashCode() getClass() clone() finalize() notify() notifyAll() wait() hashCode를 오버라이딩하면 인스턴스가 다르더라도 인스턴스 변수의 값이 같으면 같은 해시값으로 리턴된다. clone()의 제약조건 clone() 오..
🚀 bitcamp TIL (21.08.09)
📌 31일차(2021-08-09,월) 자바 객체지향 문법(eomcs-java/com.eomcs.oop) ex07: 추상 클래스와 추상 메서드 📌 알게 된 점 객체지향 분석 설계에서는 인스턴스 필드를 다루는 인스턴스 메서드를 연산자라고 한다. 추상화가 무너진다? > 적절하게 접근을 통제함으로서 해결 ex) 환자정보 - 키, 몸무게, 성별 등등 만약 키 몸무게가 무효한 값이라면 치명적이다. (추상화가 무너진다) 향후 변경가능성에 대해서 어떤 구조로 작성하는게 유지보수에 도움을 주는가? 가능한 최소한의 터치로 바꾸게끔 필드보다 메서드를 통한 변경이 유지보수가 좋다. lombok - 실무에서 쓴다. (게터 세터를 보다 더 간결하게 작성하기 위함) 만들어놓고 보니까 아 겹치네 수퍼클래스로 정의하자 추상클래스의 레..
🚀 bitcamp TIL (21.08.05)
📌 29일차(2021-08-05,목) 실전 프로젝트(eomcs-java-project) 10-a. 자료 구조 다루기 II : 데이터 처리 코드를 캡슐화 📌 알게 된 점들 캡슐화 - 복잡한 코드를 분리하여 메서드에 감춘다. (핵심) 복잡한 코드를 단순화시키자. 캡슐화의 이점 - 메서드를 이용하는 측에 영향을 주지 않으면서 기능의 구현을 변경할 수 있다. (핸드폰 기능들 내부 구조 몰라도 된다. 잘 동작해서 쓰기만 하면 된다.) 교체가 쉽고 유지보수가 쉽다. 사용자 UI 중심 클래스 / DAO 데이터 처리를 하는 클래스로 분리 (높은 응집도 : 한 클래스가 한 기능에 집중하게 만든다) 어떤 경우에 클래스를 합치는지 어떤 경우에 클래스를 분리해야하는지? 책임할당 소프트웨어 설계패턴 GRASP(객체지향 밑바닥 ..
🚀 bitcamp TIL (21.08.03 ~ 21.08.04)
📌 27일차(2021-08-03,화) 실전 프로젝트(eomcs-java-project) 08-b. Composite 디자인 패턴 : 적용 후(계속) 08-c. Composite 디자인 패턴 : 익명 클래스 활용 08-d. Composite 디자인 패턴 : 스태틱 멤버를 인스턴스 멤버로 전환 📌 알게 된 점 패턴 = 유사한 형태 이러이러한 내용으로 하니까 잘 되더라 클래스 상속관계 의존관계를 어떻게 설계할 것인가? 처음부터 제로베이스에서 시작하는거 아니다. 우리가 필요한것은 선배들의 경험을 내 것을 받아들이고 실무경험을 쌓고 우리만의 방법을 찾는 것이 순서다. 무조건 내가 처음부터 창시한다? nono 직접 접근하지말고 상속받은 슈퍼클래스의 타이틀을 호출하라 삭제 = 삭제는 보이드 대신 메뉴 객체를 준다. ..