전체 글

백엔드 개발자
오늘도 스프링에 대해 계속 학습해보는 시간을 가졌다. 코드를 따라 치면서 어느정도 흐름을 알게되었다고 생각했는데 막상 처음부터 쭉 다시보니 모르는 부분이 너무나도 많았다. 이론적인 부분에서 모르는 부분이 너무나도 많아 주말 동안 부족한 부분들을 최대한 채워보려고 노력할 예정이다. 오늘은 ERD 다이어그램 그리는 법에 대해 간단하게 정리해보았다. 데이터 모델링 표기법에는 바커 표기법과 IE 표기법이 있는데 그 중 많이 쓰이는 IE 표기법을 사용해서 정리해보았다. 1. ERD 다이어그램 그리는 법ERD(Entity Relation Diagram)는 영어 의미 그대로 엔티티간의 관계를 그림으로 표현한 것이다. 다이어그램 작성법을 하나하나 살펴보는 것 보다 실제 다이어그램을 보면서 하나하나 이해하는 것이 더 이..
오늘부터는 스프링 전체 과정 복습을 시작하면서 주어진 과제도 조금씩 해보는 시간을 가졌다. 처음부터 하나하나 보다보니 잘 모르고 넘어간 부분이 생각보다 많았다는 것을 깨닫게 되었고 오늘 하루동안 많은 것을 알게된 것 같아 좋았다. 주어진 과제는 많은 것을 해보지는 못했다. 먼저 어떻게 프로젝트를 설계해야하는지를 찾아보다보니 시간이 생각보다 많이 흘렀다. 일단 유스 케이스 다이어그램(Use Case Diagram)을 그리는 방법, API 명세서를 작성하는 방법, ERD 그리는 방법에 대해 알아보고 실제 과제인 ToDo앱을 만들기 위해 위 3개를 작성하는 시간을 가졌다. 여기에 그 내용을 간단하게 정리해본다. 1. 과제 시작하기1-1. 유스 케이스 다이어그램유스 케이스 다이어그램이란 시스템에서 사용자에게 제..
오늘은 스프링 숙련 강의를 거의 끝까지 다 들어보았다. 일단 전체 그림은 어느정도 파악했다고 할 수 있을 것 같지만 세부적으로 하나하나 완전히 이해했다고 하기는 어렵다. 이제 다시 앞에서부터 차근차근 살펴보는 시간을 가져봐야 할 것 같다. 오늘은 인증/인가 이론 공부를 하면서 알게된 것들을 정리해보았다. 1. 인증/인가, 쿠키/토큰1-1. 인증/인가가장 먼저 인증과 인가가 무엇인지에 대해서 공부해봐야할 것 같아서 찾아보았다. 인증이란 누군가가 자신이 주장하는 바로 그 사람인지 증명하는 것을 말한다. 예를들어 어떤 사람이 신분을 증명하기 위해 신분증을 제시해야 했다면 인증을 받은 거라고 할 수 있다.  여기서 누군가는 어떤 것 또는 무언가가 될 수도 있고 사람은 어떤 장치나, 어플리케이션 그리고 서비스 안..
오늘은 스프링 숙련 강의를 계속해서 듣고 따라해보는 시간을 가졌다. 강의를 들으면서 그대로 따라하는 것도 쉽지는 않았고 과정을 이해하려다 보니 시간이 더 걸리기도 했다. 전체적인 그림을 파악하는 것에 초점을 맞춰서 진행했던 것 같다. 그리고 강의를 그대로 보면서 따라하다보니 문제가 생기는 부분이 있었다. DB 연결이 제대로 되지 않았고 환경변수 설정이 제대로 되지 않는 부분이 있었는데 그것을 해결해본 과정을 적어본다.  1. Spring DB 연결 오류 해결먼저 사용중인 IDE인 인텔리제이와 DB를 연결하는 것은 어렵지 않았다. 그런데 만든 어플리케이션과 DB를 연결하는 과정에서 문제가 있었다.  외부 설정 파일인 application.properties에 연결 정보를 쭉 적어줬는데 제대로 실행이 되지 ..
오늘은 스프링 입문, 숙련 강의들을 들으며 대부분의 시간을 보냈다. 일단 진도를 쭉 빼놓고 자세히 공부해봐야겠다는 생각이 들어서 일단은 최대한 빨리 끝까지 강의 수강을 마치는 것을 목표로 잡고있다. 오늘은 스프링 입문 강의를 듣고나서 작성해야 하는 과제 문제들을 풀어보며서 복습도 하면서 아는 내용을 간단하게 정리해보았다. 1. Spring 입문 문제 - Library와 FrameWork의 설명 중 틀린 것을 고르시오특정한 언어의 개발 환경에 기본적으로 포함된 것들은 대부분 표준 Library라고 불린다Library는 Application을 호출하는 Caller 역할을 한다FrameWork는 개발 시 목적에 따라 고민할 필요 없이 이용할 수 있도록 일괄로 가져다 쓰도록 만들어 놓은 틀이다Spring은 Li..
오늘은 스프링 숙련 강의 초반부를 보며 스프링 학습을 이어나갔다. 아마 당분간은 계속 강의를 보고 학습하는 시간을 가지게 될 것 같다. 어제 정리하다가 마치지 못했던 구조 분해 선언에 대해  1. Kotlin 구조 분해 선언1-1. 루프문 안에서 구조 분해 활용하기for문을 이용해 맵 전체를 돌아야하거나 리스트 전체를 돌면서 인덱스도 같이 필요한 경우 구조 분해를 활용하면 코드를 간결하게 작성할 수 있다. 아래 두 가지 예시 코드를 보면 쉽게 이해가 갈 것이다. - for문 안에서 map의 키, 값 구조 분해를 이용하여 활용해보기fun main() { val maps = mutableMapOf(1 to "one", 2 to "two", 3 to "three", 4 to "four", 5 to "fi..
오늘은 스프링 입문 강의도 보고 알고리즘 공부도 하는 시간을 가졌다. 다른 사람들이 작성한 코드들을 보고 구조 분해 선언이라는 것을 알게되었고, 따라서 몇 번 사용해본 적이 있었는데 이것에 대해 제대로 알고있지는 못했어서 오늘은 이 부분에 대해 정리해보았다. 1. 구조 분해 선언1-1. 구조 분해 선언이란?객체가 가지고 있는 여러 값을 한 번에 여러 개의 변수에 넣어 선언하는 것을 말한다. 이렇게 생성된 변수들은 모두 독립적으로 사용할 수 있다. 코드로 직접 작성해 확인해보면 직관적이고 이해하기 쉽다. 아래는 Pair를 구조 분해 선언하여 두 개의 변수에 값을 한 번에 담는 것을 보여준다.fun main() { val pair = "하하" to 20 val (name, age) = pair ..
오늘도 코틀린에 대해 계속 공부하면서 스프링에 대한 기본 강의 일부를 잠깐 보게 되었다. 오늘은 배열과 컬렉션에서 최대값과 최소값을 구하는 여러가지 방식에 대해 알아보고 정리해보았다. 1. Kotlin 컬렉션 최대값과 최솟값1-1. max(), maxOrNull()max() 함수를 사용하면 컬렉션 내 요소들이 비교가능한 것들이라면 최대값을 반환받을 수 있다. 다만 빈 컬렉션의 경우는 예외가 발생한다. 이럴 때 예외를 발생시키지 않고 null 값을 반환받고 싶다면 maxOrNull()을 이용할 수 있다. 그렇지만 반환 타입이 null을 허용하는 타입이 된다는 점에 유의해야한다. 코드로 확인해보면 이해가 쉽다.fun main() { val arr = listOf(1,2,3,4,5,6,7,8,9) ..
무무11
무무의 블로그