전체 글(411)
-
(TIL) 20221027/ 책임에 따른 분리
🏴Facts(한 것) & Findings(배운 것) 가장 최근 TIL이 테스트하기 좋은 코드였다. 그리고 나는 책임 분리가 잘 되어 있는 코드가 테스트하기 좋은 코드라는 말을 했다. 그렇다면 어떤 코드가 책임 분리가 잘 된 코드일까? 우선 아래 코드를 보자. public class Calc { public String calc(List list) { int sum = 0; for(int i = 0; i ..
2022.10.27 -
(운영체제) API? ABI? 리눅스 시스템 프로그래밍
책을 읽다가 사람들이 별로 모를거 같은 ABI가 나와서 ABI에 대해서 문서화를 하려고 한다. 개발자라면 모두가 원하는게 있을 것이다. 바로 작성한 프로그램이 잘 동작하는 것...! 어떤 환경에서도 프로그램이 잘 동작하길 원할 것이고, 이것이 시스템 프로그래밍의 영역으로 왔을 때는 영향을 주는 2가지를 고려하게 된다. 바로 API와 ABI이다. 🧐What is API? API란 뭘까? API는 소프트퉤어의 소스 코드 레벨에서 서로 인터페이스 하는 방식을 정의한다. 일반적으로 API의 표준 인터페이스는 함수이며 상위 레벨의 소프트웨어에서 더 하위 레벨의 소프트웨어를 호출할 수 있다. - 리눅스 시스템 프로그래밍, 36p API는 Application Programming Interface(애플리케이션 프로..
2022.10.25 -
(TIL) 20221019/ 테스트 하기 좋은 코드
🏴Facts(한 것) & Findings(배운 것) 테스트하기 좋은 코드는 어떤 코드일까? 오늘 테스트 코드를 작성하면서 문득 이런 생각이 들었다. 결국 테스트는 '이 메서드가 똑바로 의도대로 똑바로 동작하냐?'에 대한 답이라고 생각한다. 그러려면 첫 번째로 코드에 의도가 잘 드러나야 한다. 의도가 잘 드러난 코드는 무엇일까? 나는 '관심사 분리가 잘 된 코드'라고 생각한다. 관심사 분리라고하면 어렵게 생각하는 분들이 많으신데, 예를 들어, getUser라는 메서드는 User를 반환해주기만 하면 된다. 올바른 데이터가 들어왔는지 확인하고, 여러 방법으로 찾고 뭐 어쩌고 하는 것은 외부에서 봤을 때 getUser의 관심사가 아닌 것이다. 그렇기 때문에 getUser가 가지고 있는 여러 책임들을 마..
2022.10.20 -
(TIL) 20221013/ 토비의 스프링, 프로젝트 테스트 코드
🏴Facts(한 것) & Findings(배운 것) 토비의 스프링을 1장부터 다시 읽고 있다. 사실 토비님이랑 하는 같이 읽기를 신청했었는데, 초반에는 회사에서 일하느라 너무 바빠서 책 읽을 시간이 없었다. 지금은 여유가 생겨서 책을 읽고 있다. 1장에서는 객체지향에서 스프링 IoC/DI까지 가는 방식을 보여주고 있다. 예시가 DB 커넥션인데, 중복을 줄이고, 생성자 방식으로 의존관계를 주입함으로써 IoC 예제를 보여준다. 스프링은 @Bean이라는 어노테이션이 붙어있거나, @Component라는 어노테이션이 붙어있으면 스프링에서 객체를 싱글톤으로 생성한 후 application context, 즉 컨테이너에서 관리한다. 그렇기 때문에 의존관계로 객체를 생성할 수 있게 되고, 이 덕분에 객체의 유..
2022.10.14 -
(TIL) 20221011/Redis 데모 프로젝트
🏴Facts(한 것) & Findings(배운 것) 알고리즘 문제를 몇개 풀었다. 힙, DP 문제 몇개를 두고 한 두시간 씨름을 하니 3시였다. 힙 문제는 최소힙 문제다. 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 예전에 C++로 풀었을 때는 라이브러리에 priority_queue가 정의되어 있었기 때문에 푸는데 10분도 안 걸렸었다. 문제는 파이썬인데, 나는 Heapq를 써서 풀고 싶지 않았다. 적절한 알고리즘을 찾아서 문제를 풀었는데, 계속 시간초과가 발생해서 어쩔 수 없..
2022.10.13 -
(TIL) 20221010/구름 알고리즘 챌린지
🏴Facts(한 것) & Findings(배운 것) 구름 알고리즘 챌린지 2주차 문제를 풀었다. 총 4문제였고, 3번까지는 단순 구현 문제였으며, 4번 문제는 탐색 문제였다.(DFS 맛보기) 리액트를 처음부터 공부하고 있다. 만들면서 하는데 아직까지 뭐하고 있는지 잘 모르겠다...ㅜ 🏴Affirmation(자기 선언) 코틀린 || 스프링 || 리액트 강의 듣기 -> 성공 Goole k8s 강의 듣기 -> 실패 알고리즘 문제 풀기 -> 성공 🏴여담
2022.10.10