본문 바로가기

전체 글

[클린코드 완독하기] Chapter 04 주석 Chapter 04. 코드를 보조하는 주석 01 주석은 최대한 쓰지 말자 // 직원에게 복지 혜택을 받을 자격이 있는지 검사한다. if ((employee.flags & HOURLY_FLAG) && employee.age > 65 )) // 의미있는 이름을 지으면 해결된다. if (employee.isEligibleForFullBenefits( )) 주석은 나쁜 코드를 보완하지 못한다. 코드에 주석을 추가하는 일반적인 이유틑 코드 품질이 나쁘기 때문이다. 자신이 저지른 난장판을 주석으로 설명하지 말고 개선하는데 시간을 보내야한다. 의도를 정확히 표현할 수 있는 코드를 작성하면 주석이 필요없다. 코드의 변화에 따라가지 못하고, 주석은 방치된다. 복지혜택에 연금 혜택 기준이 추가된다면, 주석에 저절로 그 변.. 더보기
[클린코드 완독하기] Chapter 03 함수 Chapter 03. 함수 작성하기 01 SOLID 원칙 : 객체지향 설계의 5가지 원칙 * SOLID원칙 더 이해하기 -> https://6161990src.tistory.com/67?category=845791 [JAVA] 객체지향 5대원칙 / POJO JAVA 📌 SRP Single Responsibility Principle 단일 책임 원칙 클래스는 하나의 일에만 책임진다. 즉, 1개의 클래스에 하나의 역할만 가져야한다. 설계중인 프로그래밍에 클래스가 여러가지 역할을 가지고 있다 6161990src.tistory.com 1. SRP 단일 책임 원칙 클래스는 하나의 기능만 가지며, 어떤 변화에 의해 클래스를 변경해야하는 이유는 오직 하나뿐이어야한다. SRP 책임이 분명해지기 때문에, 변경에 의한 연.. 더보기
[210916] 백준 5397번 문제 풀이 / 키로거 문제의 핵心 1. 문자열 크기가 최대 1,000,000이므로 시뮬레이션 방식으로는 문제를 해결할 수 없다. 2. 스택을 활용하여 선형시간 문제를 해결할 수 있는 알고리즘을 설계한다. 3. 스택 두 개를 만들고, 스택 두 개의 중간 지점을 커너(Cursor)로 간주한다. 4. 문자 입력 : 왼쪽 스택에 원소를 삽입한다. 5. - 입력 : 왼쪽 스택에서 원소를 삭제한다. 6. 입력 : 오른쪽 스택에서 왼쪽 스택으로 원소를 이동한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; .. 더보기
[210916] 백준 1966번 문제 풀이 / 프린터 큐 문제의 핵心 1. 데이터의 개수(N 0) { StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int M = Integer.parseInt(st.nextToken()); LinkedList q = new LinkedList(); st = new StringTokenizer(br.readLine()); for(int i=0; i 더보기
[210916] 백준 1874번 문제 풀이 / 스택 수열 문제의 핵心 1. 스택에 원소를 삽입할 때는, 단순히 특정 수에 도달할 때까지 삽입한다. 2. 스택에서 원소를 연달아 빼낼 때 내림차순을 유지할 수 있는지 확인한다. import java.util.Scanner; import java.util.Stack; public class Q3_1874 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); StringBuilder sb = new StringBuilder(); Stack stack = new Stack(); int N = sc.nextInt(); int count = 1; while(N --> 0) { int value = sc.nextInt(); while(c.. 더보기
[클린코드 완독하기] Chapter 01~02 깨끗한 코드와 의미있는 이름 Chapter 01. 나쁜 코드란 무엇일까 성능이 나쁜 코드 불필요한 연산이 들어가서 개선의 여지가 있는 코드 의미가 모호한 코드 이해하기 어려운 코드 네이밍과 그 내용이 다른 코드 중복된 코드 비슷한 내용인데 중복되는 코드 나쁜 코드를 방치하면 안되는 이유 1. 깨진 유리창 법칙 *깨진 유리창 하나를 방치해두면 그 지점을 중심으로 범죄가 확산한다는 법칙 나쁜 코드는 깨진 유리창처럼 계속 나쁜 코드가 만들어지도록 한다. 2. 생산성 저하 나쁜 코드는 팀 생산성을 저하시킨다. 기술 부채를 만들어 수정을 더 어렵게한다. 3. 새로운 시스템을 만들어야한다. 현 시스템을 유지보수하며 대처할 새로운 시스템 개발은 현실적으로 매우 어렵다. 나쁜 코드를 짜는 이유 촉박한 일정 생각보다 영향범위가 넓어서 일이 커질까봐.. 더보기