개발 43

[자료구조] Queue Java로 구현하기

First In First Out (FIFO) //add, remove, peek, isEmpty import java.util.NoSuchElementException; class Queue { class Node { private T data; private Node next; public Node(T data) { this.data = data; } } //queue는 앞뒤 값의 주소를 알고 있어야 된다. private Node first; private Node last; //값 추가 public void add(T item) { Node t = new Node(item); //마지막 노드가 있다면 새로 생성한 노트를 붙인다. if (last != null) { last.next = t; } la..

[자료구조] Stack Java로 구현하기

First In , First Out //pop, push, peek, isEmpty class Stack { class Node { private T data; private Node next; public Node(T data) { this.data = data; } } private Node top; //맨 위에 있는 값의 주소만 기억하면 된다. //가장 위의 값 제거 public T pop() { if (top == null) { throw new EmptyStackException(); } T item = top.data; top = top.next; return item; } //가장 위로 값 추가 public void push(T item) { Node t = new Node(item); t..

2022.2.6(일) study

설 연휴로 미뤄졌던 study에 참석했다. 늦게 합류하는 바람에 나는 첫 수업이었지만 기존 팀원 2명은 2번째 수업이었다. * Spring DI * AutoConfiguration - AutoConfiguration 에 의해서 Bean 으로 등록되고, 안되고 등이 스프링부트 버전에 따라서 변경될 수 있고, 그 점에 대해서 개발자가 잘 이해하고 있어야 한다. * 단위테스트 작성 방법 * 도메인 주도 설계 - 서비스에서는 repository를 참조해야지 구현체를 참조하면 안된다. - entity는 아무것도 의존하지 않는 상태를 유지해야 한다. * RestTemplate 사용해서 openAPI호출해보기 - 정렬기능, 평점 0인 경우 결과에서 제외시키는 기능 추가하고 단위 테스트까지 작성해서 PR 요청하기 ⭐️..

개발/끄적이기 2022.02.07

항해 12주차 WIL

드디어 프로젝트 발표를 했다. 6주간의 대장정(?)을 끝내니 전부 다 끝나버린 것 같아 아쉬우면서도 안도감도 들면서 어쨌든 시원섭섭한 느낌이었다. 아쉬운 점이 많았지만 항해 시작 전과 비교했을 때와는 비교할 수 없을 정도로 성장한 건 사실인 것 같다. 학교 시험기간에도 날을 새 본 적이 없는데 아침까지 붙잡고 있으면서 어떻게든 작동하게 만들어보겠다고 끙끙댔던 걸 보면 재미있게 한 것 같다. 그 당시에는 너무 괴로웠지만 끝나고 보니 희극이었던 것 같다. 기간 내에 끝나는 데에만 급급해서 제대로 돌아보지 못했던 부분들을 이력서, 면접 준비를 하면서 다시 돌아봐야겠다. 항해 시작 당시에는 빨리 배워서 취업하고 싶다는 생각이 들었다면 지금은 좀 더 잘 알고 취업하고 싶다는 생각이 든다. 이런 마음을 먹었지만 프..

개발/끄적이기 2022.01.29

항해 11주차 WIL

이번 주에 드디어 프로젝트를 배포했다. 기존 배포 예정일보다 늦어졌다. 배포와 함께 진행한 이벤트도 구상해서 인스타그램에 홍보할 이미지도 만들고, 개발자 커뮤니티나 떡볶이 모임에 홍보할 문구도 작성했다. 인스타 광고도 하고 지인들에게 홍보를 했더니 사용자가 생각보다 많이 가입했다. 하지만 사용자 대비 떡볶이 집을 등록하는 비율은 적었다. 식당을 등록하는 과정에서 기입해야 하는 내용도 많고 이미지도 첨부해야해서 식당 등록을 하는 과정이 쉽지않아 생긴 문제인 것 같다. 카카오 API를 받아오고 있으니 식당을 검색할 수 있게 해서 기입하는 정보도 줄이고 정확성을 높이자는 의견을 냈지만 결국 반영되지 못했다. 암튼 프론트적으로 아쉬운 점이 많은데 수정사항이 바로 반영되지 않아 아쉽다.. 기존에 작성해 놓은 AP..

개발/끄적이기 2022.01.24

[springBoot] test용 h2 DB 설정하기

springbootTest를 시행하면 연결되어있는 DB로 데이터가 이동된다. rollback이 된다고 하더라도 데이터가 DB에 들어갔다 오는 것이기때문에 test환경에서만 사용할 수 있는 DB를 h2로 설정을 했다. * build.gradle 에 추가 testImplementation 'com.h2database:h2' * FoodMapApplicationTests.java @ActiveProfiles("test") @SpringBootTest(properties = "classpath:application-test.yml") @AutoConfigureMockMvc class FoodMapApplicationTests { @Test void contextLoads() { } } * src/test/res..

개발/Project 2022.01.24

2022.01.22 TIL

다른 조들 프로젝트를 보면서 점점 아쉬운 점이 많다.. 프로젝트를 배포하고 피드백을 받는 중인데 대부분 프론트적으로 안되는 기능이나 불편한 점들에 대한 것들이다. 점점 사용자가 많아져서 피드백은 많이 들어오고 너무 반영했으면 하는 개선사항들이 많은 데 프론트엔드개발자분이 바쁘셔서 반영이 되고 있지 않다. 버그들이 많아서 사용자들이 많아져도 활용을 할 수 없으니 대부분 불만들이 많다. 빨리 수정사항이 반영되서 좋은 사용자 경험을 주고 싶은데 그런 점들이 현업 개발자랑 협업하다보니 답답하다. 대부분 백엔드 3명이서 얘기하고 결정하다보니 협업하고 있나라는 생각이 든다. 프로젝트 발표 날이 얼마 남지 않아서 백엔드에서 더 개선할 부분이나 어필할 수 있는 부분들을 하고 있기는 하지만 더 좋은 퀄리티의 결과물이 나..

개발/끄적이기 2022.01.23

항해 11주차 WIL

이번 주는 프론트엔드가 아직 기능 개발 중에 있기 때문에 처음 프로젝트 기획할 때 고려하던 기능을 추가하는 것은 포기하기로 했다. 프론트엔드는 혼자 하시기 때문에 절대적으로 시간이 부족했다. 프로젝트 제출 기한에 맞추기 위해서는 현재 완성된 부분에 집중하는 것이 맞는 것이라는 생각이 들었다. 16일 배포를 목표로 했지만 테스트를 하면서 에러가 너무 많아 당장 배포하는 것은 무리라는 판단이 들어 배포를 늦추기로 했다. 1. 식당등록 방식 변경 1.16일, 프론트엔드 서버와 처음 연결해봤다. 테스트해보니 사용성이 불편한 점들이 있었다. 특히, 식당등록부분에서 사용자가 식당을 등록하기 위해서는 등록하고자 하는 떡볶이집의 정확한 주소를 알고 있어야 위치를 등록할 수있다. 주소 검색 API를 사용하고 있다보니 서..

개발/끄적이기 2022.01.17

2022.01.11 TIL

오늘 한 일 - 테스트 코드 작성 - CI 적용 느낀 점 travis.yml 파일을 적용하는데 오류가 났다. 현재 우리 repo가 하위 폴더에 프로젝트 파일이 있는 상태였기 때문에 travis 파일이 적용이 되지 않았다. travis.yml 파일은 build.gradle과 같은 루트에 있어야 하기 때문에 따로 travis.yml 만 경로를 이동해도 적용이 되지 않았다. travis.yml 파일에 gradlew 경로도 설정하고 이것저것 해보다가 결국 repository를 새로 만들었다. 하위 폴더만 clone하는 것은 https://www.lesstif.com/gitbook/git-clone-20776761.html 를 참고했다. 새로 만든 repo에서 적용하니 아주 잘된다. 경로 문제가 맞았다. 멘토님께..

개발/끄적이기 2022.01.12