본문 바로가기

코드스쿼드9

[주간 회고] 22.01. 4주차 👫🕹 일기 형태로 작성되었습니다. 월, 화요일 멀티 프로세스, 스레드 스케줄링하는 프로젝트를 했다. 스케줄링에 라운드 로빈을 적용했다. 자바에서 처음으로 스레드 생성을 했다. 자세한 내용은 일일 회고로 대체한다. [일일 회고] 22.01.24~25 - 자바의 동시성 프로그래밍과 몇 개의 아이템 적용 JK의 그룹 리뷰 시간도 유익했다. 인간과 인공지능의 차이점은 인간은 '모르는 것'을 바로 모른다고 할 수 있다. 하지만 기계는 모른다고 대답하기 위해 기계가 알고 있는 모든 정보를 검색, 계산하고 마지막에 모른다고 한다. 모르는 것을 아는 것, 비판적 사고와 메타인지를 높이는 것은 배움에 중요한 요소다. 또한 이미 안다고 하는 것을 점검할 필요가 있다. 사실 모르는 것인데 해당 지식을 자주 접하면 친숙하게 느껴져.. 2022. 1. 30.
[일일 회고] 22.01.13.목 - 초보의 OOP 설계와 구현기(다형성과 추상화, 정적 팩터리 메서드 적용) 📚 개발 생각 오늘은 특정 주제에 대한 콘솔 프로젝트를 했다. 프로그램 실행부터 사용자 입, 출력과 데이터, 핵심 로직에 대한 요구사항이 있었다. 이를 절차 지향적으로 구현하는 것이 아니라 직접 OOP로 설계하고 구현하는 것이다. 예전에 C로 개발한 습관이 남아있어서 항상 어떤 문제를 볼 때 데이터를 중앙에 꺼내 쓰는 방식으로 개발했다. 이를 탈피하고자 특정 객체 안에 데이터와 프로시저로 묶어 정말 OOP 패러다임을 머릿속에 넣고 몸으로 익히고 싶었다. 사실 이전에 '객체지향의 사실과 오해 책'도 읽고 OOP 적용을 하려 했지만 역시나 어려웠다. 오늘의 회고는 프로젝트에서 겪었던 고민과 의문점을 남긴다. OOP ..ing ✅ 설계를 고민하고 구현하다 보니 다형성과 추상화가 된다고? 주어진 문제를 설계, .. 2022. 1. 13.
[일일 회고] 22.01.11.화 - 타인의 코드를 본다는 것 📚TIL 타인의 코드를 본다는 것 오늘은 어제 구현했던 자료구조를 가지고 팀원들과 각자 구현한 내용을 비교하며 리뷰했다. 타인의 코드를 본다는 것은 타인의 사고 과정뿐만 아니라 기술적 차이까지 살펴볼 수 있었다. 어제도 말했지만 어제 구현한 과제는 테스트에 집중하다 보니 이도 저도 아닌 코드가 되어버렸는데, 오늘 팀원들의 코드를 보며 객체지향적이고, 클린 코드, 코드 설계 관점까지 살펴볼 수 있었다. ✅ 인터페이스를 활용한 추상화, 제네릭 사용 내 코드의 문제는 링크드 리스트를 구현하는 데 도메인에 의존되어 있었다. 그러다 보니 링크드 리스트 기능뿐만 아니라 특정 도메인의 로직 (출력 문구, 삭제 등)이 코드 안에 들어있어 자료 구조를 재활용할 수 없었다. 하지만 팀원의 코드를 보니 LinkedList의.. 2022. 1. 11.
[일일 회고] 22.01.10.월 - 테스트 코드, 다 좋은 게 아니었어.. 오늘은 특정 요구사항에 맞는 데이터 구조를 설계하고 구현했다. 테스트 코드에 집중하다 보니 객체 설계에 신경을 쓰지 못했고 도리어 나쁜 테스트 코드만 작성했다. 📚TIL 좋은 테스트 코드란 무엇일까? 단위 테스트 적용 3일 차, 테스트 코드는 다 좋은 게 아니었어... 😞 책, '단위 테스트 4장'에서 좋은 테스트를 작성하기 위해서는 4가지 특성을 잘 분배해야 한다고 한다. 회귀 방지를하고 리팩터링에 내성이 있으며 빠른 피드백이 가능하고 유지 보수하기 좋은 테스트 코드를 작성해야한다. 오늘은 ‘회귀 방지’를 못한 경험을 했다. 회귀 방지를 못한 것은 요구사항 추가, 수정 시 기능이 의도한 대로 작동하지 않는 경우다. 이점을 인지하지 못했다. 전에는 기능이 추가될 때마다 의도한 대로 작동하지 않으니 매번 .. 2022. 1. 10.