목록전체 글 (192)
Lewis's Tech Keep
What are we making? - 정답이란 없다 - 주관적임 - 클래스 다이어그램 : 어떤 시스템에 있는 클래스들을 보여주는 다이어그램 : 시스템 디자인 시각화를 위한 표준 : 시스템의 정적인 구조를 보여주기에 적합 - 실세계의 상태와 동작 모두를 가져오려고 하면 안된다. : 원하는 기능보다 더 들어온다는 것은 필요하지 않은 것도 들어갈 가능성이 높다는 뜻. : 작성한 코드는 유지보수의 대상 -> 코드를 여러번 고치게 됨 : 근데 이 코드가 많다면? -> 할 때마다 다 고쳐야 할 수도 있음 : 처음부터 올바르게 모델링할 수 있다는 망상을 버려야 한다. intelligent fool 은 언제나 뭔가를 크게, 복잡하게 위험하게 만든다. 천재성보다 용기가 더 중요
- 생성자는 개체가 생성과 동시에 올바른 상태임을 보장해야 한다. - 개체는 자신의 상태를 스스로 책임져야 함 - 개체 외부에서 개체의 상태에 직접 접근하는 것을 막아야 한다. -> 접근제어자 - 접근제어자 : public : 누구나 접근 가능 : protected : 자식들만 접근 가능 : default(package) 같은 패키지에 속한 클래스들만 접근 가능 : private : 외부 접근 금지 (내 개체 안에서만 접근 가능) - private 변경하려고 하면 -> 컴파일 오류가 난다. - private 의 경우에 호출 주체가 개체 내부라면 가능 - 일반적인 접근 제어자 : 멤버 변수 접근은 메서드를 통해서만 -> 캡슐화, 추상화 - private 메서드 용도 : 클래스 안 코드 중복을 막기 위한 용..
링크 : https://www.acmicpc.net/problem/20440 풀이 링크 : https://coder-in-war.tistory.com/entry/BOJ-JAVA20440-%EB%8B%88%EA%B0%80-%EC%8B%AB%EC%96%B4-%EC%8B%AB%EC%96%B4-%EB%84%88%EB%AC%B4-%EC%8B%AB%EC%96%B4-%EC%8B%AB%EC%96%B4-%EC%98%A4%EC%A7%80%EB%A7%88-%EB%82%B4%EA%B2%8C-%EC%B0%9D%EC%A0%81%EB%8C%80%EC%A7%80%EB%A7%88-1 [ BOJ ][JAVA][20440] 니가 싫어 싫어 너무 싫어 싫어 오지마 내게 찝적대지마 - 1 www.acmicpc.net/problem/20440..
- 클래스 : 클래스와 개체 생성 : 상태 + 함수 : 왜 클래스 ? -> 자연 세계에서 생물 분류 중 class는 강이라고 부름 : 종, 과보다 상위 개념 : 어떤 개체든지 속한 클래스가 있음. : 비슷한 속성과 동작을 공유한다는 것을 의미 : Blueprint, 붕어빵 틀, 주물 - OOP에서의 클래스 : 새로운 개체 만들 때 명세서 : 속성, 동작 등등등 - 클래스 선언 : this.age : 현재 개체가 호출된 곳의 위치를 의미 - 접근 제어자 : 멤버 변수, 멤버 함수 선언 시 앞에 붙는 접근 제어자 : 외부에서 클래스 내부에 담긴 상태/동작에 접근하는 것 (외부: 다른 패키지를 의미) : public, protected, default, private 존재 - 상태를 칭하는 용어 : 멤버 변수..
- 개체지향 프로그래밍의 필요 : 절차적 언어 아쉬운 점 : 데이터의 비인간화 (사람이 사람대로 사는 것이 아니라 몸1, 몸2 이런 식으로 나뉘게 된다.) : 절차적 언어 아쉬운 점 : 데이터가 많아질 때 관리가 힘들어짐 (비이상적 예외라던지) : 보완책 C에서는 구조체 (C언어 구조체는 데이터만 딱 들어있음) - 실세계 사람은 어떻게 생각하고 행동할까 (상태와 행동이라는 개념) : 대상이 동작을 수행하는 것 : 대상이 굳이 알지 않아도 되는 정보는 알지 않아도 된다. : 대상은 필요한 정보만 알면 된다. : 사람은 세상을 물체의 집합으로 인지한다. (object의 집합) : 물체는 상태를 가질 뿐만 아니라 동작도 할 수 있음 : 상태 저장은 변수 & 동작은 함수 : 어떠한 상태가 나한테 필요하냐, 어떠..
- 메인 함수 - JAVA 프로그램 실행 시 반드시 필요한 약속 - 없을 시에 컴파일 오류 발생 - 패키지 목적 : 이름 중복 시 다른 패키지 안에 있다면 충돌 회피 가능 : 패키지 이름 중복 최소화 - 컴파일 : javac(java compile) -d : 결과물 -> .class 파일 = byte 코드로 되어 있음. : java -classpath : .class 파일에는 반드시 main 함수가 있어야 함. : 배포 방법 : .jar 파일을 만듦. -> lib : jar -> jar -cfm(compile file & manifest) - 자바 is Crossplatform (yes and no at the same time) : 맞기도하고 아니기도 하다. (jvm이 올라가 있어야 cross plat..
참고 : https://www.acmicpc.net/submit/6497 로그인 www.acmicpc.net 참고 풀이 링크 : https://steady-coding.tistory.com/118 [BOJ] 백준 6497번 : 전력난 (JAVA) 문제 성진이는 한 도시의 시장인데 거지라서 전력난에 끙끙댄다. 그래서 모든 길마다 원래 켜져 있던 가로등 중 일부를 소등하기로 하였다. 길의 가로등을 켜 두면 하루에 길의 미터 수만큼 돈 steady-coding.tistory.com - 크루스칼 알고리즘 사용하는 문제 - 크루스칼은 개념적으로만 알고 있었고 union-find 의 개념을 몰랐다. - Minimum Spanning Tree 공부 좀 더 해야 할 듯 하다. - 모든 노드를 연결하면서 최소한의 비용을..
참고 : https://programmers.co.kr/learn/courses/30/lessons/77486?language=java 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 풀이 참고 링크 (https://dev-note-97.tistory.com/267) - dfs 문제 - 오랫동안 풀지 못했다. - 리프부터 루프까지 타고 올라가는 로직이 아직 자신이 없는 게 느껴졌다. - dfs 로 리프에서 루프까지 역으로 타고 올라가기 위한 조건들을 잘 기억해 두자 ( parent 의 존재, 탈출 조건 ..