본문 바로가기
  • 시 쓰는 개발자

전체 글176

생성자 왜 쓸까? 생성자 왜 쓸까? 생성자를 왜 쓸까? 생성자를 명시해주지 않아도 컴파일러가 기본 생성자를 자동으로 만들어주고, 값을 초기화할 때도 setter를 쓸 수 있는데 왜 쓸까?? 이런 궁금증이 문득 들어서 정리해본다. 1. 쉬운 초기화 setter로도 당연히 할 수는 있다. 근데 코드만 보더라도 필드값 3개를 초기화해야한다면 생성자는 객체를 만들 때 같이 하고, setter는 3줄이 더 추가되니 생성자를 사용하는 것이 코드도 짧아지고 쉽게 초기화할 수 있다. 2. 직관성 위에서처럼 setter를 써서 3줄로 초기화하기보다, 객체를 만들 때 바로 초기화한다면 직관적이고 보기 편할 것이다. 3. 객체의 유효성 보장 그냥 있어보이게 지은 말인데, 실제 있는 말인지는 모르겠다. 단순히 Person p = new Per.. 2024. 3. 11.
6장 객체지향 (5) 오버로딩 , 생성자 , this , this() , 변수 초기화 JAVA의 정석 강의를 들으며 공부하며 정리했습니다. 너무 자잘한 내용은 안적었습니다. [자바의 정석 - 기초편] ch6-30,31 오버로딩 오버로딩 (overloading, 과적합) 한 클래스 안에 같은 이름의 메소드를 여러개 정의하는 것. 이름이 같다는 것은 하는 일이 같다는 것이다. Ex) 프린트문을 생각. println()은 println(char x), println(int x) 등 매개변수에 따라서 여러 형태이다. 오버로딩이 성립하기 위한 조건 메소드 이름이 같아야 한다. 메소드끼리 매개변수의 개수 또는 타입이 서로 달라야한다. (반환 타입은 상관 없다.) [자바의 정석 - 기초편] ch6-32~35 생성자, 기본 생성자 생성자 인스턴스 생성때마다 호출되는 인스턴스 초기화 메소드이다. 객체 만.. 2024. 3. 10.
6장 객체지향 (4) 기본형/참조형 매개변수 , static/인스턴스 메소드 JAVA의 정석 강의를 들으며 공부하며 정리했습니다. 너무 자잘한 내용은 안적었습니다. [자바의 정석 - 기초편] ch6-23 기본형 매개변수 기본형 매개변수 : 변수의 값을 읽기만 할 수 있다. (read only) 여기서 말하는 기본형은 다음 8개의 변수를 말함. int, float, char, String, byte, boolean, double, long 참조형 매개변수 : 변수의 값을 읽고 변경할 수 있다. (read & write) class Data { int x; } class PrimitiveParamEx { public static void main(String[] args) { Data d = new Data(); d.x = 10; System.out.println("main() : .. 2024. 3. 10.
6장 객체지향 (3) 메소드 , 호출스택 JAVA의 정석 강의를 들으며 공부하며 정리했습니다. 너무 자잘한 내용은 안적었습니다. [자바의 정석 - 기초편] ch6-14~16 메서드란? 메서드의 선언부와 구현부 메소드란? 메소드는 문장(명령문)들을 묶어놓은 것이다. 좀 더 구체적으로는 자주 쓰는 코드를 괄호로 묶고서 이름을 붙여놓으면 그게 메소드다. 메소드는 값을 받아서 처리하고 결과를 반환한다. 이때 값은 여러개 받을 수 있지만 반환하는 값은 항상 1개이다. 만약 여러개를 반환하고 싶으면 배열에 담아서 주거나 객체로 묶어서 줘야한다. 단, 하나의 메소드는 하나의 기능만 수행하도록 작성하는 것이 좋다. 메소드의 장점 코드 중복 줄임 코드 관리 쉬움 코드 재사용 가능 코드가 간결해져서 가독성에 좋다 메소드 = 선언부 + 구현부 선언부 : 메소드 이.. 2024. 3. 10.
6장 객체지향 (2) 클래스변수 , 인스턴스변수 JAVA의 정석 강의를 들으며 공부하며 정리했습니다. 너무 자잘한 내용은 안적었습니다. [자바의 정석 - 기초편] ch6-11 선언위치 변수종류 영역은 클래스 영역과 메소드 영역으로 나뉜다. 클래스 영역에는 선언문만 가능하다. 프린트문 같은 것들은 불가능하다. 1. 인스턴스 변수(iv) : 클래스 영역에 선언된 변수. 인스턴스 변수를 묶어놓은 것이 객체이다. 2. 클래스 변수(cv) : 클래스 영역에 선언된 변수. 인스턴스 변수에 static을 붙이면 클래스 변수가 된다. 3. 지역변수(lv) : 메소드 영역에 선언된 변수 변수의 종류 선언 위치 생성 시기 클래스 변수(cv) (static이 붙은 인스턴스 변수) 클래스 영역 클래스가 메모리에 올라갈 때 인스턴스 변수(iv) ★인스턴스가 생성됐을 때★ 지.. 2024. 3. 10.
6장 객체지향 (1) 객체 , 클래스 JAVA의 정석 강의를 들으며 공부하며 정리했습니다. 너무 자잘한 내용은 안적었습니다. [자바의 정석 - 기초편] ch6-1 객체지향 언어 - 6, 7장이 제일 중요하니 반복해서 공부한다. - 객체지향 규칙은 외워라. 그냥 a4용지에 적어서 외우기!! [자바의 정석 - 기초편] ch6-2~4 클래스와 객체 클래스(설계도) : 객체를 정의하는 것. 객체 생성에 사용 객체(제품) : 실제로 존재하는 것. 객체가 가지고 있는 기능과 속성에 따라 용도가 달라짐. 객체 = 속성(변수) + 기능(메소드) 인스턴스 : 객체랑 똑같다. 다만, 객체는 모든 인스턴스를 대표하는 general한 용어이고, 인스턴스는 특정 클래스로부터 생성된 객체를 말한다. Q. 클래스가 필요한 이유는? A. 객체를 생성하기 위해 ↓ Q. .. 2024. 3. 10.
파이참 기본 단축키 Ctrl + R : 실행 (기존 Shift F10을 변경, run context configuration) Shift + Enter : 키보드 바로 다음 줄로 이동시키기 Ctrl + / : 한번에 주석처리 Alt +Enter : (빨간줄 그어져잇을 때) 모듈 바로설치 F2 : 하이라이트 표시된 에러 문장으로 바로 이동 Ctrl + B : 함수가 정의된 곳으로 바로 이동 Ctrl + E : 현재 파이썬 파일이 있는 곳 폴더열기 (keymap에서 show in explorer) Ctrl + D : 드래그 없이 바로 한줄 복사해서 붙여넣기 Ctrl + Y : 드래그 없이 바로 한줄 삭제하기 Ctrl + C : 드래그 없이 바로 한줄 복사하기 Ctrl + X : 드래그 없이 바로 한줄 잘라내기 2024. 3. 9.
인텔리제이 기본 단축키 모음 알아두면 좋은 기본 단축키 Alt + #[0-9] : 각 단축키에 해당하는 도구창 열기 Ctrl + Shift + F12 : 편집기(Editor) 영역을 최대로 크기로 토글 Ctrl + Shift + I : 현재 프로필 기준으로 현재 파일 검사 Ctrl + Alt + S : Settings 열기 Ctrl + Alt + Shift + S : 프로젝트 구조창(Project Structure) 열기 Double Shift : 전체 검색창 열기 Ctrl + E : 최근 열어본 파일 목록창 열기 Ctrl + B : 해당 파일로 넘어가기 , 안되면 Ctrl + 더블클릭 Ctrl + Shift + T : Class에 대한 TestCase 생성 및 이동 디버깅 관련 단축키 F8 : 현재 브레이크된 라인에서 다음 라인으.. 2024. 3. 9.
TDD란? TDD (Test Driven Development) TDD란 "테스트 주도 개발"이라는 소프트웨어 개발 방법론 중 하나이다. 스프링을 공부하는 사람이라면 테스트 코드에 대해서 한번쯤 들어봤을 것이다. 개발 후 테스트가 아니라, 테스트코드를 먼저 작성하고 이후에 개발하는 스타일이다. (※ 다만 실제 회사에 적용하는 것은 회사마다 천차만별이며, 주위에 물어보아도 효율적이지 못하다는 이유로 도입하지 않았다는 의견이 많았다.) TDD를 이용한 개발 테스트 케이스 작성 : 기능 구현 없이 테스트 코드를 작성한다. 이때, 최대한 빨리 테스트를 통과하기 위해 실패하는 테스트 코드를 작성할 수 있다. 통과하는 케이스 작성 : 테스트 코드 통과를 위한 실제 기능을 구현한다. 리팩토링 : 리팩토링을 통해 성능이나 재사용.. 2024. 3. 9.