오늘은 스프링 팀 프로젝트가 시작되는 날이다. 스프링을 배운지 얼마 안되었고 어떤 것을 프로젝트 주제로 정해야할까 다소 막막한 느낌이 있었는데 기본적인 사항들이 구체적으로 정해지고 난 다음에는 어느정도 잘 진행된 것 같다. 여러명이서 협업을 한다는 것이 쉬운 일이 아니라는 것도 첫 날부터 느낄 수 있었다. 오늘 설계 단계는 거의 마무리해서 내일부터는 코드를 작성할 수 있을 것 같다. 설계 단계부터 역시나 만만하지 않았는데 고민해야할 부분이 정말 많다는 것을 알 수 있었다. 공부해야할 것이 참 많은 것 같다. 1. 알고리즘 문제 풀이1-1. 풀어본 문제leetcode에 있는 '739. Daily Temperatures' 문제를 풀어보았다. [문제]주어진 정수 배열이 일일 온도를 나타낸다고 할 때, 더 따..
전체 글
백엔드 개발자오늘은 오랜만에 코틀린 기본 문법에 대해서 이것저것 찾아보면서 시간을 보냈다. 제네릭 같은 부분을 자세히 공부해보고 싶은데 이해가 쉽지 않은 부분이라 시간이 조금 걸릴 것 같다. 여기에는 아주 기본적인 식과 문의 차이에 대해서 적어보았다. 1. Kotlin 식과 문의 차이프로그래밍에서 식과 문의 차이에 대한 것은 아주 기본적인 것으로 거의 맨 처음에 배웠던 걸로 기억한다. 그런데 이것에 대해서 이제와서 정리하는 이유는 내가 무의식적으로 여태까지 잘 사용은 해왔지만 완벽하게 정리되어 있는 상태가 아니었기 때문이다. 식과 문에 대해 짧게 정리하면 다음과 같다. 식(expression)이란 가장 간단히 말하면 값으로 표현될 수 있는 것이다. 가장 단순한 식은 값을 표현하는 리터럴이다. 식을 연산자로 서로 엮어..
오늘은 근 몇주간 많이 하지 못했던 CS 공부를 해보는 시간을 가졌다. 계속 꾸준히 해야하는데 스프링을 새로 학습해야했고 과제도 있어서 많이 하지는 못했었다. 다음주에 프로젝트가 시작되도 매일 조금씩은 할 수 있도록 노력해봐야겠다. 오늘은 알고리즘관련 공부한 내용과 문제를 푼 과정을 정리해보았다. 1. 알고리즘 문제 풀이1-1. 풀어본 문제leetcode에 있는 '20. Valid Parentheses' 문제를 풀어보았다. [문제] '(', ')', '{', '}', '[' 및 ']' 문자만 포함된 문자열 s가 주어졌을 때, 문자열이 유효한지 판단하세요 문자열은 다음과 같은 경우에 유효합니다열린 괄호는 같은 유형의 괄호로 닫아야합니다열린 괄호는 올바른 순서로 닫아야합니다모든 닫는 괄호는 여는 괄호와 같은..

오늘은 여태까지 학습하고 진행했던 Spring 과제 최종 제출이 있는 날이었다. 전체 코드를 여러번 체크해보았는데 꼼꼼히 체크했다고 생각했는데 계속 잘못된 부분과 고칠 수 있는 부분들이 보였었다. 프로그램이 더 복잡해지면 역시 테스트 코드 작성 같은 것이 매우 중요할 것이라는 생각이 들었다. 여기에는 오늘 최종 제출한 과제 내용과 과제를 진행하면서 새로 알게된 내용들을 정리해보았다. 1. Spring 개인 과제1-1. 프로젝트 전체 설계과제가 여러가지 단계가 있었기 때문에 단계를 진행할때마다 설계를 바꿔야하는 경우도 많았다. 때문에 왜 처음에 설계를 잘 해놓아야 하는지를 어느정도 알 수 있었다. 여기에는 최종적으로 완성한 유즈 케이스 다이어그램, API 명세서, ERD을 올려본다.위 사진이 유즈 케이스 ..

오늘도 스프링 학습을 이어나갔다. 오늘은 주어진 과제의 선택구현 부분을 구현하고 전체 코드를 수정해보는 시간을 가졌다. 여기에는 그간 공부해왔던 JPA에 대해 조금 정리해보았다. 1. JPA의 영속성 컨텍스트와 Spring Data JPA1-1. JPA의 영속성 컨텍스트- 영속성 이란? 영속성은 간단히 말해 데이터를 영구히 저장하는 것을 말한다. 애플리케이션에서 만들어지거나 수정된 데이터들이 영속성을 가지지 않는다면 메모리 상에서만 존재하게 되고 프로그램이 종료되면 모두 사라지게 될 것이다. 외부 저장장치(웹 개발에서는 주로 데이터베이스)에 저장을 해둬야 영구히 저장되게 된다. 데이터를 저장함으로써 영속성을 부여하게 되는 것이다. - 영속성 컨텍스트란? 엔티티를 영구히 저장하는 환경이라고 할 수 있다...
오늘은 스프링 과제를 조금 더 진행해보고 JPA에 대해서 더 자세히 공부해보았다. 그 내용을 정리하려면 조금 더 시간이 필요할 것 같다. 여기에는 오늘 풀어본 알고리즘 문제 풀이 하나를 정리해본다. 1. 알고리즘 문제 풀이leetcode에 있는 '15. 3Sum' 문제를 풀어보았다. 1-1. 풀어본 문제[문제]정수 배열 nums가 주어졌을 때, i != j, i != k, j != k 를 모두 만족하고 nums[i] + nums[j] + nums[k] == 0을 만족하는 [nums[i], nums[j], nums[k]]를 모두 반환하세요 솔루션 셋에는 중복된 삼중항이 포함되서는 안됩니다. - 예시 1입력: nums = [-1, 0, 1, 2, -1, -4]출력: [[-1, -1, 2], [-1, 0,..
오늘도 Spring을 계속 학습하면서 시간을 보냈다. 여전히 알아야 할 것이 너무나도 많다. 이전에 무심코 썼었던 기능들이 어떤 방식으로 작동하는지, 왜 이것을 사용해야하는지를 이해하려다보니 시간이 더 오래 소모되는 것 같다. 이미 과제의 필수로 구현해야하는 부분을 구현하는 법은 익혔기 때문에 이제는 제대로 공부를 해서 이해하고 넘어가는게 중요하다고 생각한다. 여기에는 오늘 풀어보았던 알고리즘 문제 풀이 과정 하나를 적어보았다.1. 알고리즘 문제 풀이1-1. 풀어본 문제leetcode에 있는 '121. Best Time to Buy and Sell Stock' 문제를 풀어보았다. [문제]prices[i]가 i번째 날의 주식 가격인 배열 prices가 주어집니다. 당신은 주식을 구매할 날짜를 하나 선택하고..

오늘도 항상 비슷하게 비슷한 공부를 하면서 하루를 보냈던 것 같다. 일정시간 알고리즘 문제도 풀고, 스프링 학습도 하고 SQL 공부도 하면서 시간을 보냈다. JPA에 대해 이해가 부족해 그 부분을 이해해보려고 하는 중인데 아직도 시간이 많이 필요할 것 같다. 여기에는 SQL을 공부하면서 알게된 그룹함수 사용법에 대해 정리해보았다. 1. SQL 그룹 함수그룹 함수들은 여러개의 그룹화를 한 번에 처리해 주는 함수들이다. 따라서 이 함수들을 이용하지 않고도 여러 번의 GROUP BY를 이용한 다음 UNION ALL로 더하는 것으로도 똑같이 만들 수 있다. 하지만 이 함수들을 이용하면 여러줄의 긴 쿼리문을 크게 줄일 수 있다.1-1. ROLLUP먼저 바로 어떻게 사용하는지 활용 문법을 먼저 적어보았다. DBMS..