목록분류 전체보기 (52)
infinity : 무한한 성장가능성
철자 규칙은 패키지, 클래스, 인터페이스, 메서드, 필드 타입 변수의 이름을 다루는데 이 규칙들은 특별한 이유가 없는 한 반드시 따라야 한다. 👉 패키지와 모듈 패키지와 모듈이름은 각 요소를 점(.)으로 구분하여 계층적으로 짓는다. 요소들은 모두 소문자 알파벳 혹은 (드물게) 숫자로 이뤄진다. 조직 바깥에서도 사용될 패키지라면 조직 인터넷 도메인 이름을 역순으로 사용한다. ex) com.google 예외적으로 표준 라이브러리와 선택적 패키지들은 java와 javax로 시작함 패키지 이름의 나머지는 해당 패키지를 설명하는 하나 이상의 요소로 이뤄지는데 각 요소는 일반적으로 8자 이하의 짧은 단어로 함 ex) utilities 보다는 util 처럼 의미가 통하는 약어를 추천' 여러 단어가 포함된 이름이라면 ..
중첩 클래스: 다른 클래스 안에 정의된 클래스를 말함 중첩 클래스는 자신을 감싼 바깥 클래스에서만 쓰여한다 종류 정적 멤버 클래스 비정적 멤버 클래스 (inner class) 익명 클래스(inner class) 지역 클래스 (inner class) 🤔 책에서는 설명하지 않지만.. 갑자기 위의 4종류가 헷갈려 책을 찾아 공부한 내용을 추가한다ㅎㅎㅎ 중첩 클래스와 네스티드 클래스는 동일한 말이다.. class Outer{ class Nested{...} // 네스티드 클래스 } 네스티드 클래스는 static 선언 여부를 기준으로 나뉜다. 1) static 네스티드 클래스 (정적 멤버 클래스) 2) Non-static 네스티스 클래스 (비정적 멤버 클래스, 익명 클래스. 지역 클래스) 요기서! Non-stat..
🤔 불변 클래스란? 그 인스턴스의 내부 값을 수정할 수 없는 클래스 즉, 불변 클래스에 간직된 정보는 고정되어 객체가 파괴되는 순간까지 절대 달라지지 않는다. 🧐 불변 클래스의 장점 가변 클래스보다 설계하고 구현하고 사용하기 쉽고 오류가 생길 여지가 적고 훨씬 안전하다. ->라고 책에서는 말하는데, 사용하기 쉽고 오류가 생길 여지가 적고 훨씬 안전 한건 객체 내부 값이 변경되지 않기 때문에 생기는 장점인 거 같은데 왜??? 가변 클래스보다 설계 및 구현이 쉬운 걸까? 이것도 불변이기 때문에 생기는 장점인데, 객체의 값이 변동되지 않도록 사용하는 방법 중 하나인 방어적 복사처럼 에러 상황에 대한 처리를 많이 고려하지 않아도 되기 때문 아닐까? 추측해본다. 🤔 클래스를 불변으로 만들기 위한 방법 객체의 상태..
팩토리 패턴을 적용하지 x 때 -> Component 타입으로 선언된 객체 comp1~3이 존재한다. -> comp1~3은 각각 Button, Switch, Dropdown 중 하나를 선택해 값을 넣어준다. (withoutFactory) 팩토리 패턴을 적용한다면? -> 다른클래스 즉 Factory안에서 주어진 조건 (Usage usage)에 따라 적절한 것을 생성해 반환 값으로 나오는 객체를 값으로 넣어줌 🤔 팩토리 패턴을 적용하면 무슨 장점이 있을까? if) Button을 생성하는 생성자가 변경되고, Button객체를 생성하는 부분의 코드가 여러 곳에 분포되어 있다면 해당 코드를 하나씩 찾아서 새 생성자 형식에 맞게 코드들을 변경해줘야 함 즉 , 객체의 생성을 하는 코드들이 많으면 많을 수록 객체의 생..
1. 싱글톤 패턴 -> 어떤 클래스의 객체가 해당 프로세스에서 딱 하나만 만들어져 있어야 할 때 -> ex) 사용자가 앱을 사용하는데 세팅에서 다크 모드를 설정해 놓으면 다른 페이지로 이동하더라도 다크 모드가 유지되어 있어야 함 즉, 어떤 페이지에 있든 세팅을 관리하는 객체는 반드시 같은 것을 사용해야 한다는 것 -> 생성자를 private으로 선언해 생성하지 못하도록 한다. -> static으로 클래스 자기 자신인 Settings 타입의 객체를 하나 만들어 놓음 -> 즉 클래스 안의 static이 아닌 변수나 메소드들은 객체가 생성될 때마다 메모리의 공간을 새로 차지함 -> static으로 선언된 것들은 객체가 얼마나 만들어지든 메모리의 지정된 공간에 딱 하나씩만 존재하게 됨 -> 컴파일 할때부터 이 ..
1. 단순히 정적 메서드와 정적 필드만을 담은 클래스를 만들고 싶을 때가 존재한다. ex) java.lang.Math, java.util.Arrays처럼 기본 타입 값이나 배열 관련 메서드들을 모아놓을 수 있음 2. 특정 인터페이스를 구현하는 객체를 생성해주는 정적 메서드(혹은 팩터리)를 모아놓을 수도 있음 ex) java.land.colletcions 3. final 클래스와 관련한 메서드들을 모아놓을 때도 사용 -> final 클래스를 상속해서 하위 클래스에 메서드를 넣는 건 불가능하기 때문 (final 클래스는 상속이 불가능하기 때문) 이렇게 정적 멤버만 담은 유틸리티 클래스는 인스턴스로 만들어 쓰려고 설계한 것이 아니다. 하지만 생성자를 명지하지 않으면 컴파일러가 자동으로 기본 생성자를 만들어준다..
클래스는 객체의 팩토리이다. 이 챕터에서 이해할 부분은 클래스는 객체의 팩토리라는 것이다. 클래스는 객체를 생성하는데 이것을 클래스가 객체를 인스턴스화 한다고 표현 책에서 간단하게 클래스에서 생성자가 표현된 코드를 보여준다. class Cash{ public Cash(int dollars){ //... } } Cash five=new Cash(5); 위의 예제는 Factory 패턴이라고 부르는 디자인 패턴과 다른 패턴 왜 위의 예제는 Factory라고 부르는 디자인 패턴과 다른 것인가? → new 연산은 오로지 객체라고 불리는 클래스의 인스턴스를 생성하는 것뿐이라... Java에서 Factory 패턴이란? new 연산자를 확장한 것처럼 동작 Factory패턴은 부가적인 로직을 더할 수 있기 때문에, ne..
git flow란 ? git flow를 말한다면? 크게 두가지로 나눠질 수 있음 브랜치를 어떻게 운영할 것인가에 대한 좋은 사례 위의 사례를 쉽게 운영할 수 있도록 도와주는 프로그램을 의미하기도 함(git에 내장되어있음) 이번 포스팅은 1에 대한 내용이다😊 git flow 에서 사용하는 브랜치는 5가지 종류가 있다. master : 제품으로 출시될 수 있는 브랜치, 항상 실행 가능한 상태를 유지해야 한다. develop : 다음 출시 버전을 개발하는 브랜치, 실행가능한 상태를 만들어가는 과정 feature : 기능을 개발하는 브랜치 release: 이번 출시 버전을 준비하는 브랜치 hotfix: 출시 버전에서 발생한 버그를 수정하는 브랜치 더보기 1.개발자는 develop브랜치에서 자신이 개발할 기능을 ..
패스트캠퍼스의 한 번에 끝내는 프론트엔드 개발 초격자 패키지의 JS 선행부분을 정리한 글 입니다. 😊 표기법 dash-case(kebab-case) Html,Css에서 주로 사용한다. ex) the-quick-grown-fox-jumps-over-the-lazy-dog snake_case Html,Css에서 주로 사용한다. ex) the_quick_brown_fox_jumps_over_the_lazy_dog camelCase javaScript에서 주로 사용한다. 앞에 영단어가 소문자로 오는것에 주의하자 ex)theQuickBrownFoxJumpsOverTheLazyDog PascalCase javaScript에서 주로 사용한다. (보통은 camelCase를 자주 사용하고 특이케이스에 PascalCase..
Git 11강 - Git 복구왕 Reflog git reflog -> 한번이라도 커밋한 내용들이 다 남아있다. -> 내용들로 커밋 내용을 확인한 후 git reset --hard 변경을 원하는 시점 입력 git commit --amend -m "변경하고 싶은 로그" -> 만약 변경하고 싶은 로그를 제외한 로그 히스토리가 없을때 , git commit --amend -m 을 사용하면 최종 로그를 변경할 수 있다. git reset --soft ->로그를 변경하고 싶다면 로그변경하고 싶은 시점의 이전 로그로 돌아가 다시 커밋한다. Git 13강 - Git Branch기본개념 -> 기본적으로 main브랜치가 존재한다. ->idea 브랜치를 만들어 아이디 중복체크 기능에 대한 것을 구현한 후 -> main 브랜..