공부 45

[프로그래머스] 스킬업/주문관리 API 서버 개발

SpringBoot 공부를 하고자 프로그래머스 스킬업에 있는 주문관리 API 서버 개발이라는 연습 과제를 해보았습니다. SpringBoot를 자세히 모르고, SpringBoot를 사용할 때에는 JPA밖에 사용해보지 않아 문제를 푸는 데 있어 어려움을 느꼈습니다. ... 결국 중도 포기를 하긴 하였지만, 좋은 경험이었던 것 같습니다. 제 첫 스킬업 연습 과제였기에 낯설기도 했지만, 에디터 역시 제가 기존에 사용해오던 에디터와 달라 더 낯설게 느껴졌던 것 같습니다. 문제 자체는 어려운 편은 아니었지만, 제가 사용해보았던 JPA가 아닌 JDBC template를 사용하였다는 점, 그리고 직접 DB를 사용하여 CRUD를 하지 않고, Read를 중점적으로 했다는 점에서 문제를 해결하는 데에 있어 어려움을 느꼈습니..

공부/서버 2022.02.13

[프로그래머스] 베스트 앨범

※ 해당 문제의 링크는 여기입니다. ※ 다른 분들이 푸신 방법도 보았으나 내부 클래스 만드셔서 하시는 경우가 대부분이었으나 저는 HashMap 3개를 만들어 해결하였습니다. 3가지 조건을 충족하기 위해 HashMap을 만들었습니다. 각각의 HashMap은 장르, 재생 횟수 / 장르, 총 재생 횟수 / 고유 번호, 재생 횟수 로 하였습니다. HashMap songs = new HashMap(); // 장르, 횟수 HashMap heardTimes = new HashMap(); // 장르, 총 횟수 HashMap unique = new HashMap(); // 고유 번호, 횟수 장르를 키로 몇 번 재생한 횟수를 저장을 for문을 사용하여 저장하였습니다. for (int i = 0; i < genres.len..

앞으로 공부해야할 것들

글쓰기 앞서, 필자는 Spring에 큰 흥미와 관심이 있어 서버/백엔드 개발을 하고자한다. 카카오 채용 공고에 있는 것들을 이해를 하고 할 줄 안다면 취업하기 조금이라도 수월하지 않을 까 하여 앞으로 해야하는 것들을 조금이나마 작성하고자한다. 물론 카카오 채용은 경력 2년 이상이 기본이지만 앞서 설명했듯이 어디까지나 취업하는 데에 있어 조금이라도 수월하게 하기 위함이다. 필자는 글을 쓰는 시점인 지금, 고등학생이다. 그렇기에 경력이 있지 않다. 지원 자격 중 가장 눈에 띈 항목은 Linux 환경 서비스 개발, 운영 경험이다. 호스팅 서버 대다수가 linux이니 그럴 수 있는 것 같다. RDBMS 관련 설계 및 개발 경험은 MySQL 또는 유사한 관계형 데이터베이스 경험 RDB 데이터베이스 설계 가능 My..

공부 2022.02.10

[프로그래머스] 위장

※ 해당 문제의 링크는 여기입니다. ※ public int solution(String[][] clothes) { HashMap parts = new HashMap(); for (String[] clothe : clothes) { String key = clothe[1]; parts.put(key, parts.getOrDefault(key, 0) + 1); } int answer = 1; for (Map.Entry entry : parts.entrySet()) { answer *= entry.getValue() + 1; } return answer - 1; } HashMap를 사용하여 풀었습니다. 각 위치에 따른 원소가 몇 개인지만 파악하면 금방 풀 수 있기에 getOrDefault를 사용하였습니다. g..

[프로그래머스] 전화번호 목록

※ 해당 문제의 링크는 여기입니다. ※ 위 방식은 HashSet 방식을 사용하는 방식이 있지만 배열로만 해결하였습니다. public boolean solution(String[] phoneBook) { Arrays.sort(phoneBook); for (int i = 0; i < phoneBook.length - 1; i++) { if (phoneBook[i + 1].startsWith(phoneBook[i])) { return false; } } return true; } 전화부를 정렬합니다. 전화부 길이 - 1 까지 for문을 돌립니다. 전화부[i + 1]의 시작부분이 현재 전화부 번호이라면 false를 반환합니다. 전부 다 찾았는 데도 false가 반환되지않았다면 중복이 없으므로 true를 반환합니..

[프로그래머스] 완주하지 못한 선수

※ 해당 문제의 링크는 여기입니다. ※ key와 value를 사용하여 문제를 해결해야하는 문제라는 것은 파악했지만 굳이 HashMap를 사용해야하는 가에 대한 의문이 들어 그냥 배열을 사용하여 문제를 해결했습니다. public String solution(String[] participant, String[] completion) { // 선수 목록에는 있지만, 완주자 목록에 없으면 // 해당 선수 이름을 반환 // 둘 다 정렬하면 해당 위치에 동일한 이름이 올라갈 것임 Arrays.sort(participant); Arrays.sort(completion); int i; for (i = 0; i < completion.length; i++) { if (!completion[i].equals(partic..

협업 프로젝트 진행 시 팁

개발을 혼자하면 큰 문제가 생기지 않지만 개발을 여러 명이서 같이 협업으로 할 때가 종종 생깁니다. 회사에서 일을 한다면 더더욱 그럴 것입니다. 물론 회사 측에서도 어느정도 방향성과 더불어 틀이 잡혀있긴 할 테지만, 필자와 같이 학교에서 협업을 진행할 경우 방향성 및 틀이 전혀 잡혀있지않아 보통 선배에게 물어보거나 같이 의논하여 방향성과 틀을 잡습니다. 하지만 회사와 같이 서로 의견이 맞지않더라도 방향성을 같이 잡는 다는 것은 학교에서는 쉽지않은 일입니다. 그렇기때문에 1년간, 그리고 앞으로 학교 혹은 사적으로 같이 이런 방식으로 개발을 하면 어떨까라는 생각으로 포스팅하고 있습니다. (해당 포스트에서 다루는 얘기는 필자가 다니는 현재 학교와 상황 등을 고려하여 작성하였습니다. 참고해주세요) 먼저, 주제를..

공부 2022.02.07

[서버/백엔드] 쿠키, 세션, 캐시 (Cookie, Session, Cache)

웹에 대해서 공부하기 위해 필수적으로 알아둬야하는 기초적인 내용 중 쿠키, 세션, 캐시에 대해서 기록해두고자 포스트하기로 했다. 쿠키(COOKIE) 쿠키는 브라우저가 소지할 수 있는 정보들을 저장하는 저장소입니다. 개인이 확인하고 수정하고 삭제할 수 있는 정보들이 담긴 저장소입니다. 본인이 확인하고 수정 및 삭제할 수 있는 만큼 보안적으로 좋은 방법은 아닙니다. 그래서 중요한 정보들은 쿠키에는 저장하지 않습니다. 쿠키는 보통 자동 로그인, 오늘 하루동안 보지 않기 등 이용자들의 편리함을 주기위한 용도로 주로 사용됩니다. 세션(SESSION) 세션은 본인이 소지할 수 없는 정보들을 저장하는 저장소입니다. 서버에서 이를 관리하는 메모리 혹은 DB에 의해 저장이 됩니다. 서비스를 운영하는 쪽에서만 확인가능한 ..

공부/서버 2022.01.21

백엔드 로드맵 공부

백엔드 로드맵과 관련된 이미지인데 해당 링크를 통해 다운로드 받으실 수 있습니다. 일단 현재 대소고에서 1년간 보내며 몇 가지 시도를 해보면서 백엔드 개발을 해보기로 결정했습니다.. (물론 세상일은 알 수 없듯이 바뀔 수도 있겠지만 현재로서는 백엔드로 결정했습니다.) 안드로이드, 프론트, 백엔드 이렇게 3가지 정도 시도를 해보았으나 그나마 잘 맞는 것이 백엔드, 그리고 안드로이드이기에 백엔드로 결정하였습니다. (프론트는 뭔가 잘 안 맞더라고요..) 그래서 위 백엔드 로드맵으로 백엔드 개발을 본격적으로 해야하지 않나 생각이 들어 글을 작성하게 되었습니다. 지금까지는 조금 막무가내로 일단 내가 할 수 있는 것이 뭐가 있을까..그리고 이거 구현할 수 있을 것 같은 데? 라는 생각을 가지고 개발을 했었던 것 같..

공부/서버 2022.01.15