전체 글(408)
-
(운영체제) 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 -
(TIL) 20221006/ JPA의 update
🏴Facts(한 것) & Findings(배운 것) 구름 알고리즘 챌린지를 신청해서 문제를 풀었다. 1주 차 문제여서 문제들은 매우 쉬웠고, 대부분 구현 문제로 나왔던 거 같다. 다만 구름에서 제공하는 코드 작성 툴은 조금 불편했는데, 창 크기를 마음대로 조절하지 못하고, 코드 반응 속도도 늦고 하는 점이 마음에 걸렸다. JPA 강의를 들으면서 궁금한 점이 다른 사람들은 어떤 방식으로 DB데이터를 수정하는가 였다. "그냥 update 하면 되지" (JPA의 사상을 무시하는 발언) JPA는 기본적으로 같은 트랜잭션 안에서 일어나는 수정에 대해서 감지하는 "변경 감지" 라는 것이 있다. update를 하려면 DB에서 데이터를 읽어온 후 update를 진행할 것이다. 이때 JPA는 GET 한 최초 상..
2022.10.07