일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Spring
- 프레임워크
- API
- 알고리즘
- 애자일기법
- cleancode
- ES
- 그리디알고리즘
- 개발자
- framework
- JPA
- 개발
- 데이터베이스
- Elasticsearch
- 코딩
- spring boot
- 자바
- 애자일프로그래밍
- mongoDB
- database
- 엘라스틱서치
- 코딩테스트
- 읽기쉬운코드
- Baekjoon
- 백준
- 클린코드
- 코드
- 스프링
- 그리디
- Java
- Today
- Total
목록코딩 (20)
튼튼발자 개발 성장기🏋️

TDD는 상당히 어려운 부분인 것 같다. 이전에도 TDD에 대해서 여러가지 알아보았는데 너무 깊게 들어갔는지 이해도 할 수 없었고 어떻게 해야할지고 모르겠어서 포기하고 말았다👊 짧게나마 다시 TDD 관련 글을 보았다. 쉽게 설명되어 잘 읽혔지만 새발의 피인 것을 우째😥 TDD 주제 하나로 책 한 권을 낼 수 있는데 여긴 고작 한 챕터로 다루고 있다. 언젠간 꼭 TDD를 아주 잘 설명한 책이 있다면 읽어보고 말테다! 가장 핵심은 테스트 코드 또한 깨끗하고 보기 좋아야 본 코드가 수정이되거나 새 기능이 추가되어도 테스트 코드도 쉽게 작성할 수 있다. 즉 가독성이 최우선이라 할 수 있다. FIRST 조건을 잘 되새김질 해보며 이해를 도와보자🤟

우리가 무언가를 개발 할 때에 모든 것들을 전부 만들지는 않는다. 외부 패키지를 사용할 수도 있고 잘 짜여진 프레임워크를 쓸 수도 있고 오픈 소스를 사용할 수도 있다. 모두가 하나같은 마음을 가지면 좋겠지만 각기 다른 성격과 특성을 가지고 있고 서로 다른 목적이 뚜렷하고 그 목적에 맞게 설계되어 mix하여 사용할 땐 큰 어려움이 따른다. 이를테면 버전이 호환 안되서 잘 따져 보아야 하고, 캡슐화, 독립성 등을 고려해서 구조를 잡아 가는 것이 핵심. 그 외에도 고민해야할 것들이 많을 것 같다. 난 이 책을 읽고 Map이 얼마나 위험하고 귀찮게 하는 녀석인지 깨달았다. Map을 사용할 땐 캡슐화를 고려해보자!!!☝️ 그 이유는 Map(Collection과 같은) 혹은 Object 등 많은 데이터를 포함할 수..

문제 기출 : [https://www.acmicpc.net/problem/2352] 풀이 방법 #1 [backTracking] 접근 2일 동안 이 문제에만 몰두했다. 그냥 생각나는대로 경우의수를 나열하여 백트래킹 기법으로 하나하나 탐색하여 체크했다. 문제는 풀었지만 당연하게도 시간초과..(정답인지도 모르겠다.) 그래서 다른 방법을 채택했다. 문제 풀이 #2 public class Main { private static int maxCount = 0; public static void backTracking(int[] input, int start, int end) throws Exception { int count = 1; int temp = end; int flag = 0; if(start == inp..

문제 기출 : [https://www.acmicpc.net/problem/2217] 풀이 방법 [그리디알고리즘] 접근 1. N개의 버틸 수 있는 중량을 배열에 저장하여 sort. 2. 버틸 수 있는 최대 중량을 구해야하므로 큰 값 먼저 탐색하여 다음 식을 적용 i번째 로프의 버틸 수 있는 중량 x (로프의 수 - i) 3. 최대값이 정답이 된다. 문제 풀이 public class Main { public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int answer = 0; try { int N = Integer.parseInt(br.readLine());..

문제 기출 : [https://www.acmicpc.net/problem/1946] 풀이 방법 [그리디알고리즘] 접근 문제를 읽고 "이건 무조건 객체 정렬이다!"라고 생각했다. 가장 먼저 서류 설적과 면접 성적을 따로 받고 두 성적에 대해 제한을 두고 있으니 당연한 것이 아닌가. 객체 정렬 후 오직 면접 성적만을 비교하여 큰 값을 갱신해가며 카운팅하면 된다. 문제 풀이 public class Main { public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int answer = 0; try { int testCase = Integer.parseInt(b..

조금씩 책의 내용이 어려워지고 있다. 한 문장을 무려 10번 읽고 되새김질 해보기도 한다.ㅠㅠ 최근 나는 싱글톤을 사용하여 개발한 적이 있는데 싱글톤 특징을 제대로 살리지 못하는 실수를 하고 말았다...😥 바로 생성자를 자동생성 생성자로 두었던 것... 알고 있으면서도 알아차리지 못했던게 더 괴씸하다!!! 경솔한 나의 생각때문에 큰 오류를 범할 뻔했다. java에서 access level을 둔 이유가 다 있다. 그것을 잘 활용하여 지켜주어야 한다..🙄 잘 생각해보면 protected는 거의 써본적이 없는 것 같고 변수는 private, 메소드는 public을 많이 사용하는데 이런거 하나하나 생각하면서 코드를 작성해야한다는걸 몸소 느끼며 깨달았다. 너무 익숙해지지 말자. 코딩에 당연한건 없다! 난 이 책을..

문제 기출 : [https://www.acmicpc.net/problem/1969] 풀이 방법 [그리디알고리즘] 접근 해답의 가장 큰 핵심은 각 N개의 DNA의 각 M번째 자리수(char)가 가장 많은 문자를 출력하고 카운팅해주면 된다. 가장 좋았던 조건. 체크해야할 문자를 4개로 제한 한것. (만약 제한이 없고 Alphanumeric이었다면 과연 어땠을까..?ㅠㅠ) 2중 for문을 이용해서 N개의 DNA를 탐색하면서 각 자리의 char를 체크한다. A면 A를 카운팅, T면 T를 카운팅 ····. 카운팅 된 수 중, 가장 큰 값을 채택하고 그 값을 N에서 뺀 것을 누적하여 더해주면 Hamming Distance의 합이 될 수 있다!!! 채택된 해당 max값을 가진 char를 가지고 온다. 그 값이 바로 ..

누구나 자신만의 코딩 스타일이 있는 법🤘 대학생 때는 나만의 스타일로 코딩을 했다. 심지어 툴 마저도 내가 커스터마이징 해서 눈이 덜 필로하게 어두운 색상으로 알아보기 쉬운 syntax 색상을 설정하기도 했다😊 취업을 했다면 자신의 스타일을 잊자. 내가 소속해 있는 조직에 룰이 있을텐데 그 룰을 파괴하는 흉악범(?)이 되지 말자🧛♂️ 팀 룰이 아무리 맘에들지 않거나 옳지 않아도, 따르지 않고 자신의 스타일대로 코딩하면 그것이 흉악범이지 무엇이겠는가!!!👹 나의 경우에는 서비스 별로 코드 스타일이 달라서 각 서비스 소스에 따라서 알맞게 코딩한다. 이것이 참 사소하면서도 나를 힘들게 한다. 한 번에 여러 서비스를 개발하다 보면 분명 스위칭을 하게 되는데.. 그것이 더디거나 꼬여버리면 전혀 다른 특성을 띄는..