본문 바로가기

전체 글158

강점에 올인하라 - 도널드 클린프턴 삼촌이 추천해 주셔서 읽게 된 책 (현재 절판되었음) (줄거리 중) 토끼가 다니는 동물학교에선 달리기, 수영, 줄넘기 등 여러 가지 활동을 한다. 줄넘기나 달리기에서는 항상 1등을 하고 잘하는 모습을 보여준다. 하지만 수영은 물에 들어가는 것조차 어려워한다. 그래서 항상 수영을 하고 온 날의 토끼는 기분이 안 좋았다. 학교에서는 토끼에게 너는 이미 달리기와 줄넘기를 잘하니 수영 수업시간을 2배로 늘리자고 말한다. 충격을 받은 토끼는 결국 학교에 더 이상 나가지 않게 되었다. 토끼가 잘하고 좋아하는 것, 토끼의 강점은 달리기이다. 하지만 동물학교에서는 달리기는 이미 충분히 잘하기 때문에 못하는 수영연습을 더 하자고 한다. 결국 토끼의 강점도 살리지 못하게 된다. 실제 연구 사례를 하나 더 봐보도록 하자. .. 2024. 1. 26.
LMS Web 클론코딩 8 (Spring Dependency, 난관해결방법) 2024.01.25 이번 프로젝트는 Spring Boot가 아닌 Spring으로 진행을 한다. Spring에서 좀 더 편리하게 Spring Boot가 나왔기 때문에 Spring을 제대로 다룰 줄만 안다면 Spring Boot는 어려움 없이 배울 수 있다고 생각해서이다. 물론 Spring의 경우 Boot와 다르게 dependeny버전 설정 등 번거로운 부분이 있지만 오히려 번거로운 과정 속에 배움이 있다고 생각하며 Spring으로 진행 중이다. 1. 첫 번째 난관 (JPA dependency가 추가가 안됨) 나는 바로 JPA를 이용하여 db에 접근하려고 했다. 당연히 jpa를 사용하려면 build.gradle(나는 gradle을 사용하기 때문에)에 jpa dependency를 추가해줘야 한다. 처음엔 이렇.. 2024. 1. 25.
LMS Web 클론코딩 7 (ERD 설계, 도메인 테이블 설계) 2024/01/19 오늘은 ERD(Entity Relationship Diagram) 설계, 도메인 테이블 설계라고도 불리는 것을 해봤다. 내가 생각했을 때 ERD설계를 하는 이유는 다음과 같다. 여러 데이터가 있는 모든 서비스는 데이터(객체) 간의 관계가 있을 것이고 이 관계를 미리 설계하지 않고 개발을 한다면 개발 속도가 느려지고 문제가 생기면 어디서 문제가 생겼는지 확인하기가 어려울 것이다. 물론 작은 서비스라면 큰 문제가 없을 수도 있겠지만 서비스가 커지고 유지보수까지 본다면 ERD설계는 중요하다고 생각된다. 그래서 어떻게 할까? 막상 하려니 머리속으로 생각했던 테이블을 어떻게 나누고 어떤 데이터들이 필요하고 어느 데이터 간의 관계가 있는지 정확히 모르고 있었다는 것을 깨달았다. 그래서 일단 종이.. 2024. 1. 19.
LMS Web 클론코딩 7 (Spring 입문 강의 완강) 2024/01/18 어제부터 시작해 오늘까지는 강의를 듣는데 시간을 많이 썼다. 일단 스프링 입문 강의를 통해 기본적인 동작 원리를 이해하고 이후에 필요한 개념을 보충해 나가는 형식으로 공부하기 위해서이다. 강의 내용 중 테스트 케이스 작성과 AOP부분은 이후 다시 집중해서 봐야 할 것 같다. JPA에 대해서 잘 모르고 있었는데 JDBC -> JDBC template -> JPA -> Spring Data JPA 의 모든 과정을 보여주어 이 부분에 대해서 잘 이해가 되었고 이번 클론코딩 개발과정에서는 JDBC template와 JPA를 이용해 개발할 것이다. 일단 이번 LMS 클론 코딩은 Spring - JDBC template/JPA - Mysql - thymeleaf를 이용하여 개발할 예정이다. 내일.. 2024. 1. 18.
노인과 바다 - 어니스트 헤밍웨이 데미안을 읽고 무슨 책을 읽을까 생각하며 도서관에 가자마자 눈에 들어온 책. 책의 제목은 워낙 유명하기에 익숙했고, 책의 두께 또한 두껍지 않아 가벼운 마음으로 책을 읽었다. 노인과 바다는 정말 한 노인이 바다에서 일어나는 일을 담은 책이다. 중심 내용을 구체적으로 이야기하자면 어부인 노인이 청새치를 잡고 돌아오는 과정이 책 내용의 대부분이다. 늙은 노인(산티아고)은 혼자서 이겨내기 쉽지 않은 상황 속에서 긍정적인 모습과 불굴의 의지를 보이며 역경과 고난을 헤쳐나간다. 그 가운데 고독의 감정도 느낀다는 것도 표현이 되며 강하면서도 인간적인 이 노인을 응원하게 되었다. 작가가 이 작품을 통해 전하고자 하는 바가 무엇이었을까? 치열하게 사는 인간들? 긍정적인 태도? 승부를 피하지 말고 끝까지 싸워내라? .... 2024. 1. 17.
LMS Web 클론코딩 6 (Spring + Thymeleaf 2) 2024/1/17 오늘은 기존에 만들었던 LMS 클론코딩 페이지를 모두 Thymeleaf에서 실행될 수 있도록 설정을 완료했다. thymeleaf는 다른 파일 link를 걸어주는 방식이 html과는 약간 달라서 이 부분을 수정해 줬다. 또 지금 인코딩 방식이 EUC-KR로 되어있었어서 기존 파일을 가져올 때 글자가 깨지는 현상이 발생했다. UTF-8로 재설정해주었다. 현재 Front 폴더 구조는 다음과 같다. 페이지별로 이동하는 것과 페이지 안에 데이터를 위한 model, controller 설정은 아직 구현하지 않았다. 이제 Spring 공부(김영한 강의)와 erd 설계를 시작해야 할 것 같다. 2024. 1. 17.
LMS Web 클론코딩 5 (Spring + Thymeleaf) 2024/1/16 오늘은 이때까지 만들었던 페이지를 Spring 환경에서 실행시키기 위해 jsp와 Thymeleaf 중 Thymeleaf를 선택했다. 이유는 좀 더 간단한 것 같고 내가 현재 보는 강의 김영한의 스프링 기초에서 Thymeleaf를 이용하기 때문도 있다. 그래서 오늘은 TA님이 제공해주신 보일러 플레이트(개발을 위한 기초 세팅이 되어있는 코드)를 받고 내 컴퓨터에서 잘 동작하는지 테스트를 했다. 여기 세팅은 jsp와 thymeleaf 둘 다 추가는 되어있지만 기본 설정이 jsp로 되어있어 jsp설정 파일을 지우고, xml파일을 수정하고 static 폴더를 새로 생성하며 thymeleaf을 이용한 개발을 위한 환경설정을 마쳤다. 처음엔 css, js, img 파일들을 읽어오지 못하길래 뭐가 .. 2024. 1. 16.
LMS Web 클론코딩 4 (Nav bar 디테일 수정, 로그인 페이지 그리기) 2024/1/15 오늘은 어제 만든 Nav Bar의 UI 디테일을 수정하고, 각각의 버튼을 눌렀을 때 서로 페이지간 이동을 할 수 있도록 구현했다. 또 로그인 페이지도 그렸다. 페이지의 디테일은 일단 이 정도로 구현하고 이후에 수정할 예정이다.(아이콘, 폰트 등) 이로써 초반 설계했던 mvp 기능을 위한 사용자 페이지는 모두 완성되었다.(dashboard, course, write, login) 이제 spring 공부와 html, css, js로 만든 페이지를 spring - thymeleaf 환경으로 연동하는 작업을 할 것이다. 아마 이 이후 erd 설계를 할 것 같다. 2024. 1. 15.
LMS Web 클론코딩 3 (Nav bar만들기, Markdown form 넣기) 2024/1/15 Front page를 먼저 그려놓고 이후 백엔드를 공부하고 연결하는 게 좋을 것 같다고 생각되어 3-4일은 Front에만 집중하려고 한다. html, css, js 그리고 일정 부분은 bootstrap을 사용했다. 모든 버튼에 대한 이벤트는 구현하지 않았고, 필요한 버튼만 클릭하면 다음 동작을 수행하도록만 구현해 놓았다. 사이드바를 누르면 아이콘 배경색이 변하고, Nav bar가 나온다. Nav bar안에는 수강 강의 목록이 나오고 강의 목록을 선택하면 Qna게시판으로 이동한다. +Write버튼을 누르면 Write a post 페이지로 넘어간다. 제목, 내용 그리고 파일 첨부가 가능하며 내용을 넣는 폼은 js의 마크다운 에디터인 SimpleMDE를 사용했다. 2024. 1. 15.