OneK-2
[우아한 남매들] 배달의 만족 회고
회고 2024. 7. 15. 16:42

4일간 진행한 배달의 민족 자바 클론 코딩 프로젝트의 회고.6명의 팀원과 설계부터 구현까지 순수 자바로 구현한 프로젝트였다. 2가지 주요 고민사항이 있었다.MVC에서 최초 진입점은 Controller인가 View인가다른 도메인의 서비스 로직을 Controller에서 처리해야 하는가 Service에서 처리해야 하는가 Keep도메인 별로 역할을 나누어 개발하여, 협업과 유지보수에 용이했다.이슈 공유를 활발히 하고, 깃과 코드 컨벤션을 명확히 했다.싱글톤 패턴을 사용하여 데이터의 정합성을 지켰다.리팩토링을 통해 클린코드를 지향하였다.기능별로 하나의 책임만 가지도록 하였다.Problem나는 Order 기능을 개발했는데, Store와 Menu 기능이 선제적으로 필요했기 때문에, 로직을 구현하기 힘들었다.인터페이스..

article thumbnail
애자일
CS/소프트웨어공학 2024. 7. 11. 16:51

등장배경워터폴 방법론은 속도, 변화에 취약했고 문제가 발생했을 때 전 단계로 되돌리기 어렵다.변경 사항이 생길 경우, 처음 계획 단계부터 다시 시작해야 했다.이런 경직된 워터폴 방법론에 대한 대안으로 생겨난 것이 애자일 방법론이다.애자일?애자일(Agile)은 ‘기민한, 민첩한’이라는 뜻으로 일정한 주기를 가지고 빠르게 제품을 출시하여 고객의 요구사항, 변화된 환경에 맞게 요구를 더 하고 수정해나가는 탄력적인 방법론을 말한다.변화하는 고객 요구 사항에 대응하는 민첩한(agile) 개발 방식 특징반복적 개발프로젝트를 여러 개의 작은 반복 주기(Iteration) 또는 스프린트(Sprint)로 나눠서 개발한다. 각 주기는 일반적으로 1~4주간 지속되며, 그 기간 동안 하나의 기능이나 완성된 소프트웨어 조각을 ..

내가 자바를 선택한 이유
JAVA 2024. 7. 10. 16:51

나는 학부 신입생 때부터 여러 분야에 관심이 많았고, 다양한 경험을 해보고 싶었다.보안, 게임 개발, 데이터 분석 등 여러 분야를 공부하면서 자연스럽게 여러 프로그래밍 언어를 접하게 되었다.그러던 중 백엔드 개발을 알게 되었고, 자바의 매력에 빠지게 되었다.이전에는 C 계열 언어로 코딩을 했는데, 자바를 배우면서 새로운 세상을 발견한 것 같았다.C 계열 언어가 상대적으로 지루하게 느껴졌던 반면, 객체지향과 디자인 패턴 등 흥미로운 내용이 가득한 자바의 세계에 푹 빠지게 되었다. 소프트웨어 개발의 궁극적인 목표는 현실세계에서의 활동을 더 편하고 효율적으로 만들어주는 데에 있다고 생각한다. 또한, 인터넷을 통해 전 세계의 사람들이 지리적, 문화적, 경제적 장벽을 넘어 정보를 공유하고, 소통하며, 협력할 수 ..

목적지 기반 심부름 서비스 "오다 주웠다" 회고
회고 2024. 7. 9. 10:10

2023년 2월부터 6월까지 졸업작품 캡스톤 프로젝트로, 목적지 기반 심부름 서비스를 개발하였다.실제 사용자에게 배포하고 테스트를 거친 첫 번째 프로젝트였기 때문에, 개인적으로 의미가 있었고, 팀원들과 함께 성장하며 협력하여 기획, 개발, 사용자 피드백 반영까지 해보는 좋은 경험이었다. 이번 KPT 회고를 통해 프로젝트의 전반적인 과정과 성과를 되돌아보고, 앞으로의 발전 방향을 모색해보고자 한다.Keep- 협업과정이 잘 진행되었다. 노션과 깃을 사용하여, 형상관리와 문서 정리를 잘 진행되었다.- 조금 부족하지만, 클린코드를 지향하면서 코드를 짰다.- 처음으로 aws를 사용한 서버 배포에 성공했다. Problem- RESTful 하게 api를 설계 하려 했지만, 미흡한 부분이 있었던 것 같다.- 추가 기능..

자바란 다형성이다.
JAVA 2024. 7. 5. 16:50

자바의 가장 중요한 특징은?객체 지향 프로그래밍의 특징 4가지를 물어본다면 "캡상추다"라고 말할 것 같다.캡슐화상속추상화다형성만약, 자바에서 가장 중요한 특징을 하나만 골라보라고 한다면, 나는 다형성이라고 할 것이다.다형성이 뭔데?1. 하나의 타입에 여러 가지 객체를 담을 수 있다. 2. 하나의 객체를 여러 가지 타입에 담을 수 있다. 위의 두 가지 중 뭐가 다형성에 대한 설명일까?대답을 먼저 해보자면, 둘 다라고 할 수 있다. 1Phone phone = new Phone();Phone phone = new Galaxy();Phone phone = new iPhone(); 2Phone phone = new Galaxy();Galaxy phone = new Galaxy(); 나는 2번은 상속에 가깝고, 1..

article thumbnail
상속에 관하여
JAVA 2024. 7. 4. 16:58

자바의 부모/자식 클래스에 대해 학습을 하면서 3가지 질문을 받게되었다.1. 상속 관계를 결정하는 클래스는 누구인가요?2. 생성자도 상속되는 걸까요?3. 아래 그림 에서 누가 부모인가? 질문에 대답을 하기에 앞서 상속이란 무엇일까?상속이란?간단하게 말하자면, 부모 클래스의 멤버를 자식 클래스가 사용할 수 있는것이다.=> 확장의 개념 ( 그대로 사용, 추가해서 사용...) 위와 같은 관점에서 상속관계는 자식이 결정한다고 할 수 있다. 생성자가 상속이 되나?자식 클래스에 super()라는 키워드로 부모 클래스의 생성자를 호출한다. 만약 자식 클래스의 생성자에서 super를 사용하지 않으면, 컴파일러가 자동으로 부모 클래스의 기본 생성자(매개변수가 없는 생성자)를 호출한다.그리고, 인텔리제이 커뮤니티 버전을 ..

페어 프로그래밍 (1)
회고 2024. 7. 3. 15:02

그동안 페어 프로그래밍을 접할 기회가 많지 않았는데, 좋은 기회를 얻어, 함께 성장할 파트너를 만나 페어 프로그래밍을 진행해 보았다. 처음으로 함께 해보는 것이었기 때문에 비교적 구현이 간단한 버블 정렬을 선택했다. 역할은 드라이버와 네비게이터로 나누어 진행했다. Keep- 역할 교대: 5분의 시간을 두고 역할을 교대했는데, 시간 설정은 적절했다고 생각한다.- 커뮤니케이션 : 구현 과정에서 기본적으로 역할은 지키지만, 서로의 아이디어와 피드백을 적극적으로 교환하며 소통이 원활하게 이루어졌다.- 집중력: 서로 대화를 하면서, 짧은 시간동안 집중력있게 코딩을 했기 때문에, 효율적으로 작업할 수 있었다.Problem- 난이도: 버블 정렬의 난이도가 쉽다 보니, 예상한 것보다 빠르게 구현이 끝났다. - 사용 문..

article thumbnail
왜 MVC패턴을 쓸까?
CS/디자인패턴 2024. 7. 2. 10:06

MVC패턴Model: 데이터와 비즈니스 로직을 관리View: 레이아웃과 화면을 처리Controller: 명령을 모델과 뷰 부분으로 라우팅.개발을 하다보면 한 번쯤은 들어봤을 패턴이다.지금까지 관성으로, 습관으로 사용하고 있지만, 왜 사용하는지에 대한 고민이 부족했던 것 같다. 한줄로 설명해 보자면, 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴이라고 할 수 있다.MVC 에 기반을 둔 몇 가지 다른 디자인 패턴으로 MVVM, MVP, MVW 등이 있다. 왜 사용할까?분리되지 않은 JSP를 생각해 보면 된다. 한 파일안에 프론트 코드와 수많은 자바 코드들이 섞인 끔찍한 모습.. 내가 짠 코드를 보는 것도 힘든데, 다른 사람이 작성한 코드를 보는 것은 더욱 힘들 것..

검색 태그