목록전체 글 (71)
CheerUp_Cheers
#모든것이 개체 속에 있어서 불편함 - 단순한 계산도 개체로 만들어서 해야하나? ex) 절대값 구하기 int Math.abs(int); 공백문자개수 구하기 : StringUtils.countSpaces(String str); - 개체 단위가 아니라 클래스 단위에서 뭔가 하고 싶을때는? ex) 이 클래스에서 총 몇개의 개체가 있을까? => 정적(static)이 이런 불편함을 해결해줌(개체 범위가 아닌 클래스 범위) #단순한 계산 시 #정적 메소드만있는 Math클래스는 개체를 못만들게 하면 안되요? 맞는 말임 -> 이런 경우 개체 생성을 못하게 막으면 됨. - 방법 1) 생성자를 private로 막을까? private Math() { } // private로 막고! Math math = new Math();..
#클래스 다이어그램 어떤 시스템에 있는 클래스들을 보여주는 다이어그램 -> 클래스 안의 상태,동작,접근제어자 -> 클래스 간의 관계 시스템의 정적인 구조를 보여주기 적합. UML(여러가지 다이어그램)의 일부 #UML 시스템의 디자인을 시각화하기 위해 만든 표준 - 구조을 보여주는 UML 7개(클래스..) - 동작을 보여주는 UML 7개(시퀀스..) -> 요즘은 이런 문서화 줄어듬 -> 자사의 기술을 개발이 많아져서. #모델링할 문제 - 화분에 예쁜 꽃 - 일정량의 물이 있으면 평생 삼 - 물을 뿌릴때 사용하는 도구는 분무기 - 하루라도 물 못받으면 사망 - 사망 후에는 뿌려도 안살아남. 1단계 분무기 1) 클래스명 : WaterSpray 2) 상태 : 현재 남아 있는 물의양 - 초기 값 : 0 - int..
생성자 프로그래밍의 실수를 줄여줌 -> 실수를 줄여주게 강제하기 때문. -> 개체 생성한방에 생성해놔라(구조체는 하나씩 대입) - 특징 개체 생성시 자동으로 호출되는 특수 함수 반환값 : 반환 값이 없어요.(void가 아니에요~) 함수명 : 클래스명과 같아요. 매개 변수를 받지않는 생성자는 꼭 필요해~ - default 생성자 프로그래머가 생성자를 제공하고 나면, 기본 생성자는 생기지 않음. 하나라도 생성자를 만들면, 기본생성자는 만들어주자. #왜 개체 생성후 값을 대입하면 안좋을까? 1) 개념상의 문제 공장에서 찍어나온 물건이 속이 비어있네?? 2) 후조건의 문제 생성자도 함수이기 때문에 생성자의 후조건 : '개체의 상태는 개체 생성과 동시에 유효하다' 3) 사용자를 고려 안한 문제 - 사용자란? 내가..
#개체 -구조 관련있는 기능끼리 모음. 상태(변수,데이터) 동작(함수) #모든것이 개체는 아니다. 장부의 원금,수입,지출,총액 등, 데이터(순수 상태, 순수기능)만 있는 애들. -> 이런애들은 절차적으로 처리하면 됨.. OOP 프로그래밍 패러다임 중 하나 프로그램을 구성하는 기본 요소를 개체로 보려는 노력 #OOP에서 프로그램이란? 상호작용하는 개체들의 집합 #절차적 VS 개체지향 - 절차적 프로그래밍 입력 -> 처리 -> 출력 실제 하드웨어가 돌아가는 방식(객관적). - 개체지향 프로그래밍 개체가 개체를 바꾸는게 아니고, 개체가 메시지를 통해 스스로 명령을 수행하고 상태 변경 기계처럼이 아닌 사람처럼(주관적임) 생각하자. 기술이 발전함에 따라 사고방식도 변함 -> 기준이 애매하다. #OOP의 4대 특성..
JAVA는 크로스 플랫폼인가요? 한번만 빌드하면 어디서든 돈다! - 특정 언어로 작성한 코드를 여러 플랫폼에서 실행 가능. - 여러 디바이스와 운영체제에서 실행가능한 소프트웨어 자바의 장점으로 항상 언급. 크로스 플랫폼일수도 있고, 아닐수도 있다! # 전통적인 컴파일 방식 컴파일하면 실행파일이 나옴. 실행파일은 기계어이며 운영체제가 직접 실행 파일 실행파일은 특정 OS로 겨냥해서 만들어진 것. -> 각 운영체제/디바이스마다 실행파일 따로만들어야함 -> C는 진정한 크로스 플랫폼 # 자바의 컴파일 모델 코드 컴파일 -> 바이트코드(실행파일X) - 바이트 코드 JVM이라는 특수한 프로그램이 이해하는 명령어. 운영체제/디바이스가 이해하는 기계어가 아님. JVM이 실행 중, 최종 플랫폼에 맞는 명령어로 바꾸어 ..
클린코드 테스트 주도 개발(TDD) 애자일 객체 지향 프로그래밍(OOP) 데브옵스 서드파티 클린코드 #클린 코드란? 클린 코드란 가독성 높은 코드(의도와 목적이 명확) 코드가 잘 읽히는가, 지저분하지 않은 정리된 코드인가. #조건 - 네이밍 - 오류가 없어야함 - 중복이 없어야함 - 의존성 줄이기 - 클래스 혹은 메소드는 한가지 일만 처리하도록. #규칙 - 네이밍(카멜 표기, 스네이크 표기) - 주석달기(잘 이해할수 있게 도와줌) - 배치(들여쓰기, 줄바꿈) - 한가지 일만.. 테스트 주도 개발(TDD) 테스트가 개발을 이근다. 기존 : 디자인 -> 코드개발 -> 테스트 TDD : 디자인 -> 테스트코드 코드개발 #장점 작업과 동시에 테스트 진행으로 실시간 오류 파악 짧은 개발주기로 고객의 빠른 요구사항..