일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ES
- 자바
- cleancode
- Spring
- 프레임워크
- 그리디알고리즘
- 애자일
- 애자일프로그래밍
- 스프링
- 데이터베이스
- 개발
- spring boot
- 코딩
- 읽기쉬운코드
- 코딩테스트
- 애자일기법
- 엘라스틱서치
- 알고리즘
- 그리디
- framework
- API
- Elasticsearch
- 코드
- Baekjoon
- Java
- database
- JPA
- 백준
- 클린코드
- 개발자
- Today
- Total
목록전체 글 (173)
튼튼발자 개발 성장기🏋️
REST를 구성하는 아키텍처 스타일을 모아보았다. Client - Server Stateless Cache Uniform Interface Layered System Code On Demand (이 녀석은 Optional) 잘 보면 HTTP API만 잘 지켜져도 다 만족할 수 있는 녀석들이다. 그러나 4번 Uniform Interface라는 녀석만이 지켜지기 어렵다. Uniform Interface의 4가지 제약조건이 있다. Identification of resources Manipulation of resources through representions self descriptive messages hypermedia as the engine of application state 이 중에서도 3번 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cjQEmA/btqDGhqBKA2/GKs270LHntQIVhFGsflGE1/img.png)
개발자라면 RESTful에 대해 한 번이라도 들어 보았을 것이라 생각이 든다. 그러나 정작 "RESTful이 뭐야?"라고 물었을 때 진정으로 정답을 말하기 애매한 것 같다. 실제로 사내 프로젝트로 서버 개발을 했을 때 RESTful을 사용해서 서버를 구축한 경험어 있다. 그러나 코드리뷰로부터 "REST 스럽지 않다."라는 피드백을 받은 적이 있었다. 그럼 REST 스러운게 무엇일까? REST의 풀 네임은 [REpresentational State Transfer]라고 한다. 그래도 모르겠다. 그래서 REST가 만들어진 계기를 찾아보았다. 1991년으로 넘어가 보자. 인터넷을 사용하던 시절 www(World Wide Web)이 탄생할 때 어떻게 데이터를 서로 주고받을 것인지에 대해 논의를 하던 도중 다음과..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/LxINW/btqDGgSxUxv/PAxTIBXr0y6L8VKMeeJwyK/img.png)
존경하는 어느 팀장님께서 추천해주신 또 다른 책. 경력을 쌓는 방식과 관점을 만들어주고 시야를 넓혀준다. 그러나 모두 공감대를 형성하지 않았고 때때로 비판하고 "왜?"라고 되묻는다. 때론 겸허히 수긍한다. 제목을 처음 보았을 때 팀장님께서 갑자기 왠 소설책을 추천해주시길래 당황했던 기억이 난다..ㅎㅎ 도입부부터 인도의 IT 이야기로 시작하기에 정말 소설을 읽는 줄 알았다..하핳 이 책 저자가 말하고 싶은 것은 "진정 개발자가 되고 싶으면 노력해라."인데 어떻게 노력해야하는지에 대해서 서술하였다. 연구하고, 투자해라. 그리고 실행에 옮기고 이제 마음껏 자기PR을통해 자신을 마케팅하라. 사실 이 모든게 대학생 때 끝내는 것이아니라 평생 연구하고 투자해야한다고 생각한다. 기술은 나날이 발전하고 새로운 기술이 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bukYQT/btqDEZjOjFt/1x5LxeI3zO3wtvP5yXUJR1/img.png)
문제 기출 : [https://www.acmicpc.net/problem/5585] 풀이 방법 [그리디알고리즘] 접근 우리가 일상생활에서 거스름돈 계산할 때 어떻게 계산하는가? 내가 줄 수 있는 지폐 혹은 동전 단위 중에 최고 금액(1원 10원 100원 1,000원 5,000원 10,000원 50,000원)부터 빼지 않는가? 다른 방법으로 계산한다면...할 말은 없지만 난 그렇게 계산한다. 그래서 평소처럼 문제에서 주어진 큰 동전 금액부터 빼 가면서 매수를 누적해 나갔다. 문제 풀이 public class Main { public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(Sys..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/TzFVM/btqDEGKqAhl/aprXY4pIwdSH3n7I1wZqWK/img.png)
문제 기출 : [https://www.acmicpc.net/problem/2828] 풀이 방법 [그리디알고리즘] 접근 배열과 인덱스 개념만 알면 충분히 풀 수 있는 문제. 이 문제에서 중요한건 M은 N보다 항상 작으므로 신경쓰지 않아도 된다. 다음 식을 적용한다. 1. 사과의 위치가 바구니 위치 범위에 포함되면 움직이지 않는다. 2. 사과의 위치가 바구니 끝 위치보다 크면 바구니 첫 위치와 끝 위치에(사과 index - 바구니 끝 index)를 더해준다. 3. 사과의 위치가 바구니 끝 위치보다 크면 바구니 첫 위치와 끝 위치에(사과 index - 바구니 첫 index)를 더해준다. 4. 사과의 위치가 바구니 위치 범위에 포함되지 않으면 더해준 값을 누적한다. 최종적으로 누적된 index가 바로 움직인 최..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bxv9YF/btqDFpBnXLR/lMbFw2hvuv663qkQSPLOXk/img.png)
문제 기출 : [https://www.acmicpc.net/problem/2875] 풀이 방법 [그리디알고리즘] 접근 문제만 한 100번 읽어본거 같다...ㄷㄷ 아ㅏㅏㅏㅏㅏㅏㅏㅏ주 간단하게 풀 수 있드아 여학생 수 + 남학생 수 - 인턴쉽 참여 수가 총 인원이 되고, 팀 하나씩 꾸릴때마다 총 인원은 -3. N은 -2씩, M은 -1씩 그리고 팀의 수는 +1씩 해서 반복문 돌려주기만하면된다. 이 반복문은 당연히 N이 2보다 같거나 크고, M이 1보다 같거나 크고, 총 인원이 3보다 같거나 클 동안에만 돌아야한다. 문제 풀이 public class Main { public static void main(String[] args) { BufferedReader br = new BufferedReader(new ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bbyRgY/btqDFqfhcaT/RSbbwDcFWnjtTxDmCsXrJk/img.png)
문제 기출 : [https://www.acmicpc.net/problem/1343] 풀이 방법 [그리디알고리즘] 접근 받은 문자열에서 사전식 정렬을 위해 "AAAA"부터 replace를 한 다음 "BB"로 replace를한다. 만약 "X"가 남아있다면 불가능 하므로 -1 출력, "X"가 없다면 정답이 될 것이다. 아주아주아주 허무할 정도로 간단하다... 나는 무려 3시간 가량을 낭비했다... 다음과 같은 헛짓거리(?)를 할 수 있는 문제. 1. 사전식 정렬이 필요할 것 같아 보임 2. 4의 배수와 2의 배수를 생각할 수도 있음 3. 홀수와 짝수를 나눌 생각을 할 수 있음 4. "."을 기준으로 나열된 X에 대해 탐색할 가능성이 있음 5. etc 심지어 엄청난 런타임 에러때문에 식은땀을 흘렸다... 그러나..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/GQmbO/btqDAC2qcWg/s5ReRw0I95PGLcPhH90qeK/img.png)
TDD는 상당히 어려운 부분인 것 같다. 이전에도 TDD에 대해서 여러가지 알아보았는데 너무 깊게 들어갔는지 이해도 할 수 없었고 어떻게 해야할지고 모르겠어서 포기하고 말았다👊 짧게나마 다시 TDD 관련 글을 보았다. 쉽게 설명되어 잘 읽혔지만 새발의 피인 것을 우째😥 TDD 주제 하나로 책 한 권을 낼 수 있는데 여긴 고작 한 챕터로 다루고 있다. 언젠간 꼭 TDD를 아주 잘 설명한 책이 있다면 읽어보고 말테다! 가장 핵심은 테스트 코드 또한 깨끗하고 보기 좋아야 본 코드가 수정이되거나 새 기능이 추가되어도 테스트 코드도 쉽게 작성할 수 있다. 즉 가독성이 최우선이라 할 수 있다. FIRST 조건을 잘 되새김질 해보며 이해를 도와보자🤟