TDD, 클린 코드 with Java 17기를 시작하며
·
📝 끄적끄적/TDD, 클린 코드 with Java 17기
NEXTSTEP에서 진행하는 TDD, 클린 코드 with Java 17기에 합류했다.🙌시작하게 된 이유 이제 구현했다고 손 놓고 좋아하는 연차는 지났다. 점점 연차가 쌓이면서 번아웃이 오는 와중에최근 프로젝트에서 계~속 닦달하는 바람에 거지같이 개발하면서 정말 현타가 왔다.급한 로직을 부탁해서 구현하면 오오 해주지만 이건 진짜 구현만 한건데하고 기분이 더 안 좋았다.그래서 자바 기본서를 사서 다시 읽었고, 클린 코드를 읽으면서 실무에 조금씩 적용하니 개발이 좀 재밌어졌다.근데 코드 리뷰를 받질 않으니 잘 하고 있는건가? 계속 의심이 생겼다. 80만 원은 적지 않은 돈이다.또 수료율이 30%도 안 된다고 하는데, 수료도 못하는데 듣는 게 맞나? 하고 많이 고민했다.결제하기까지 정말 많은 회고록을 읽었고 ..
'스프링 입문을 위한 자바 객체 지향의 원리와 이해'를 읽고
·
📝 끄적끄적/후기 및 회고
[책 링크]📌 목차1장: 사람을 사랑한 기술2장: 자바와 절차적/ 구조적 프로그래밍3장: 자바와 객체 지향04장: 자바가 확장한 객체 지향5장: 객체 지향 설계 5원칙 - SOLID6장: 스프링이 사랑한 디자인 패턴7장: 스프링 삼각형과 설정 정보부록 A: 스프링 MVC를 이용한 게시판 구축부록 B: 자바 8 람다와 인터페이스 스펙 변화 객체 지향이라는 말이 너무 추상적으로 느껴졌다면이 책을 읽기 전까지는 객체 지향이라는 말이 추상적이었다.그냥 “현실 세계를 모방한다”는 말로는 이해가 되지 않았고, 그냥 자바가 객체 지향 언어라는 것만 아는 정도였다. 😅 그런데 책을 통해 객체 지향이라는 메커니즘이 어떻게 자바 안에서 구조화되고, 스프링에서는 그것이 어떻게 실현되는지 구체적으로 이해할 수 있었다. ..
3. 함수
·
📝 끄적끄적/📖 Clean Code
작게 만들어라!함수는 작을수록 좋다.20줄도 길다.들여쓰기(indent)는 1단이나 2단을 넘어가면 안 된다. 한 가지만 해라!함수의 추상화 수준은 하나여야 한다.지정된 함수 이름 아래에서 추상화 수준이 하나인 단계만 수행한다면 그 함수는 한 가지 작업만 하는 것이다. 서술적인 이름을 사용하라!코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드라 불러도 되겠다. 함수가 작고 단순할수록 서술적인 이름을 고르기도 쉬워진다.길고 서술적인 이름이 짧고 어려운 이름보다 좋다.IDE에서 이런저런 이름을 시도한 후 최대한 서술적인 이름을 골라도 좋다. 또한 이름을 붙일 때는 일관성이 있어야 한다. 모듈 내에서 함수 이름은 같은 문구, 명사, 동사를 사용한다.ex)`includeSetupAndTe..
[Java] 두 배열 합치기 - Two-Pointers Algorithm
·
💡 Algorithm/인프런
public class INF0301 { public ArrayList solution(int n, int m, int[] a, int[] b) { ArrayList answer = new ArrayList(); int p1 = 0, p2 = 0; while(p1 < n && p2 < m) { if(a[p1] < b[p2]) answer.add(a[p1++]); else answer.add(b[p2++]); } while(p1 < n) answer.add(a[p1++]); while(p2 < m) answer.add(b[p2++]); return answer; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); i..
[Java] 등수구하기 - Array(1, 2차원 배열)
·
💡 Algorithm/인프런
문제N명의 학생의 국어점수가 입력되면 각 학생의 등수를 입력된 순서대로 출력하는 프로그램을 작성하세요.같은 점수가 입력될 경우 높은 등수로 동일 처리한다.즉 가장 높은 점수가 92점인데 92점이 3명 존재하면 1등이 3명이고 그 다음 학생은 4등이 된다.public class INF0208 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] score = new int[n]; for (int i = 0; i  풀이for (int i = 0; i 등수를 입력하기 위한 루프를 돈다.처음에는 1등으로 초기화 한다.남..
[JAVA] 임시반장 정하기 - Array(1, 2차원 배열)
·
💡 Algorithm/인프런
public class INF0211 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] grid = new int[n+1][6]; for(int i=1; i
[JAVA] 봉우리 - Array(1, 2차원 배열)
·
💡 Algorithm/인프런
public class INF0210 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] grid = new int[n+2][n+2]; //0 채우기 for (int i = 0; i grid[i][j-1] && grid[i][j] > grid[i][j+1]) { answer++; } } } return answer; } } 풀이 정석대로 가생이에 0 채우고 중앙에 값을 입력받아 상하좌우를 비교한 방식. 문제는 없지만 나중에 DFS, BFS 등 난이도 있는 문제를 하다 보면 영상처럼 경곗값 확인을 자주 하게 되는데, 나처럼 if문에 상하좌우 조건을 4개 걸 경우에..