본문 바로가기

전체 글

(35)
2차 데모데이 회고 기획을 주로 했던 1차 데모데이가 끝나고 2차 데모데이를 준비하기 위해 개발을 시작하게 되었다. 개발을 시작하기 전에 해야 할 일들이 많았다. 테이블 설계, 엔티티 설계, 구현할 기능들에 대한 API 명세 정하기를 해야 했는데.. 2차 스프린트 일정을 맞추기 위해 백엔드는 2차 스프린트 첫 주는 9시까지 출근해서 1시간 동안 해야 할 일을 했고 그래서 일정을 맞출 수 있었다. 기획의 빈 구멍을 채우자 기획은 충분히 했다고 생각했는데도 실제로 기능을 구현하고 테이블을 설계하려다보니 기획을 수정해야 할 필요성을 느꼈다. 특히 유효기간을 설정하고, 바꿀 수 있는 기능에 대해서 이런저런 의견들이 많이 오고 갔었다. 우리는 서비스의 고객인 사장님에게 선택권을 많이 주기 위해서 유효기간을 쿠폰 혹은 스탬프에 설정할..
1차 데모데이 회고 레벨 3가 시작이 되었다🙂 내가 배정받은 팀의 주제는 도장깨기! 여기저기 카페를 다니면서 받게 되는 종이 쿠폰의 관리가 제대로 되지 않아 정리가 되지 않는 서랍을 가졌던 경험이 있거나, 내가 쿠폰의 도장을 어디까지 모았는지 모르거나 카페에 쿠폰을 가지고 오지 않아 보상을 제대로 받지 못했던 경험이 많이 있을 거라 생각한다. 그래서 우리팀의 주제는 흩어져있는 종이 쿠폰의 번거로움을 없애고자 기획된 종이 쿠폰 통합 관리 서비스이다. 팀명은 바로 스탬프크러쉬 👊 1차 데모데이까지 해야 할 중요한 일은 크게 두가지였었다 1. 팀의 그라운드 룰 정하기 2. 페르소나와 유저 시나리오 정하기 그라운드 룰 정하기 4달간의 프로젝트가 시작되는 만큼 함께 할 팀원들과 친해지고 규칙을 정하는건 정말 중요한 일이다. 처음엔 ..
책임 연쇄 패턴을 사용해서 지하철 추가 요금 정책을 반영해보자 지하철 미션 3단계를 구현해보았다. 추가 요금 정책을 적용하는 것으로, 노선별 추가 요금 정책과 연령별 요금 할인 정책을 반영하여 요금을 산정해야 한다. 그리고 요금을 계산할 때, 책임 연쇄 패턴을 사용하였다. 책임 연쇄 패턴 (Chain of Responsibility) 이란 요청을 처리하는 객체들 사이에 연결을 형성하여 요청을 처리할 수 있는 객체를 순차적으로 찾아가는 패턴으로 일련의 객체들을 연결된 체인으로 구성하여 체인 상에 있는 객체들은 순차적으로 요청을 처리한다. 온라인 주문 시스템을 개발할 때, 요청이 인증되어야 주문을 할 수 있게끔 하고, 인증된 유저들에게 권한을 부여해주고자 한다. 이 과정에서 인증에 실패하면 권한 부여를 하는 로직을 거칠 필요가 없다. 또 요청을 검증하고, 반복 요청에 ..
상반기 돌아보기 어느덧 6월이 되어버렸다 ☀️ 상반기를 정리해야 하반기를 어떤 목표를 가지고 어떻게 살아야 할지 가늠이 될 것 같아서 상반기 회고를 작성해 본다! 2023년 상반기는 가장 큰 2개의 축을 꼽자면 우테코👩🏻‍💻 와 수영 🏊🏻‍♀️이다 우아한테크코스 1월에는 쉬려고 했지만 하던것들 정리하고 2월부터 우테코를 시작해야 해서 쉬지 못했다(...) 그리고 42 마무리 하려고 과제도 진행하고 있었는데 병행이 안된다고 해서 다 하고 평가받지 못한 과제도 있는데 좀 아깝다... 그렇게 2월이 되어서 우테코를 시작했고 온보딩, 레벨 1, 레벨 2를 마무리 했다. 절반정도 진행을 했고 좋은 교육과정이라고 생각한다. 자바, 스프링에 대한 기초를 탄탄히 할 수 있고 교육을 받다보면 테스트 코드 짜는 것이 체화된 나 자신을 볼..
WWCS Tech Lounge 후기 Women Who Code Seoul 테크 라운지(세미나) 를 갔다 왔다. 사실 나는 세미나를 듣는 것을 좋아하는 편이다. 가만히 앉아있어도 다른 사람의 지식을 시각 자료와 정제된 언어로 들음으로써 내 지식이 늘어나는 느낌이 들기 때문이다. 그렇지만 매우 집순이라 나가는 것을 싫어하기 때문에 이런 외부 행사에서 하는 세미나는 안 가봤는데 결론적으로는 매우 유익한 시간이었다. 가장 큰 이유는 연사님들이 경력이 30년이 넘은 분들이라 쌓은 경험과 경력이 어마어마하시고 내공이 깊으셔서 이야기를 듣는게 재밌어서 같다. 세션 1 은 노윤선 연사님이 진행해주셨다. 세미나를 듣던 중에 약력을 검색해봤는데 엄청나신 분이었다. 비전공자이시고 개발자로 커리어를 시작하셨고 SI PM -> 마이크로소프트 기술 지원 -> 한컴..
코딩을 지탱하는 기술 - 니시오 히로카즈 얇아서 쉽게 쉽게 읽을 수 있을 줄 알았는데 큰코다친 책이었다. 제목과 목차에서 알수 있듯이 프로그래밍 언어 전반에 대한 넓은 내용을 다루고 있다. (프로그래밍 언어의 탄생역사와 목적, 문법, 반복문처리의 등장, 함수, 에러처리, 이름과 스코프, 형(타입), 컨테이너, 병행처리, 객체와 클래스, 상속) 한 챕터의 길이는 짧지만 해당 기술의 탄생 이유나 문제점, 해결법, 그리고 다양한 언어들에선 해당 기술이 어떻게 사용되고 구현되어 있는지를 알차게 담고 있다. 마침글에 있듯이 프로그래밍 언어 전반에 대한 전체적인 상을 잡는데 도움이 되고 각 챕터가 다루는 내용에 대해 상세하게 알고 싶은 흥미를 돋구는 책이다. 그리고 상세한 내용을 공부하고 다시 책을 보면 더 이해도가 높아질 거 같다. 나는 거의 1년 반동..
좋은 코드 나쁜 코드 - 톰 롱 레벨 1 추천 도서였던 책이다. 방학때 읽으려고 했는데 못 읽고 레벨 2 주말마다 2강정도씩 읽어서 이번주 완독을 했다 와👏 한줄 요약을 하자면 이 책은 우테코 레벨 1 그 자체이다! 레벨 1 강의에서 배웠던 것들, 리뷰어에게 받은 리뷰들이 다 녹아있는 책이라서 읽으면서 신기했다. 추상화 계층 만들기, 오류 처리, 가독성 높은 코드 작성하는 법, 코드를 오용하기 어렵게 만들기, 모듈화 하기, 단위 테스트 등등.. 안에 포함된 세부 목차들이 설명하고 있는 내용들을 많이 경험해봤고, 지금도 경험하고 있는 중이다. 읽으면서 너무 당연한거 아닌가? 라는 생각이 드는 책일 수도 있을 거 같은데 실제로 코드를 작성하다보면 지키지 못하는 것들이 많기에 그런 생각은 잘못된 생각인 거 같다. 참고로 레벨 1 마지막에 테..
h2 database 를 사용해서 InMemoryDao Test 하기 체스 미션을 하면서 DB 연결을 배우게 되었고 그에 따라 DB 에 값이 제대로 동작하는지 확인하는 테스트가 필요해졌다. 하지만 코드를 구현하면서 실제 사용하는 DB 에 바로 연결해서 테스트하기에는 위험성이 너무 컸고 강의에서는 Dao interface 를 만들고 public interface ChessBoardDao { void create(ChessBoard chessBoard, String id); void updateBoard(ChessBoard chessBoard, String id); ChessBoard findChessBoardById(String id); void update(ChessBoard chessBoard, String id); } 기능 구현을 할때는 InMemoryDao 를 이런식..