본문 바로가기

전체 글

(155)
회원 관리 예제 - 웹 MVC 개발 지금까지 우리는 'MVC로 회원관리'라는 궁극적 목표를 가지고 필요한 개념들을 학습했다. 1️⃣화면을 띄우는 세가지 방법을 알아보고 2️⃣도메인, 레포지토리, 서비스를 개발하고 3️⃣'의존성 주입'에 대해 학습하고, 이를 이용해 컨트롤러를 개발했다. 이번 글에서는 4️⃣MVC로 회원관리를 해보고, 다음 글에서는 한단계 더 나아가 5️⃣DB와 연결하며 JPA에 대해 배울 것이다. 이를 위해 이번 글에서는 1. 홈 화면 2. 등록 화면 3. 조회 화면 을 만들며 MVC 로 회원관리를 하려 한다. 1. 홈 화면 만들기 구현해야 하는 것 : 홈 화면 / 컨트롤러에서 Get 매핑 홈 화면 Hello Spring 회원 기능 회원 가입 회원 목록 홈(”/”) 컨트롤러 package hello.hellospring.c..
스프링 빈과 자동 의존관계 설정 스프링 빈이란? 정의 : 스프링 컨테이너에 등록된 객체 사용 이유 : ① 싱글톤으로 객체 생성 / ② 의존성 자동 주입 싱글톤으로 객체 생성 스프링 컨테이너에 빈(객체)을 등록하면, 스프링은 이 빈을 싱글톤으로 만들어 관리한다. if not…. )) 싱글톤으로 빈을 생성하지 않고, 요청 시마다 객체를 생성한다면 요청이 오는 만큼 객체를 생성해야 한다. 예를 들어, 요청 당 5개의 객체를 생성해야 하는데 초당 500개의 요청이 올 경우 2500개의 객체를 생성해야 한다. 이는 서버의 성능 저하로 이어질 수 있다. 반면 싱글톤으로 bean을 생성하게되면, 시작 시에만 객체가 생성이 된다. 이후 요청이 계속들어오더라도 이미 만들어진 bean이 리턴되기 때문에 성능 저하가 일어나지 않는다. 정리 → 싱글톤으로 ..
[스프링 입문] 회원관리 예제 - 도메인, 레포지토리, 서비스 앞선 글을 통해 1️⃣화면을 띄우는 세가지 방법에 대해 알아봤다. 지금부터는 'MVC로 회원관리'라는 목표를 가지고 필요한 개념들을 학습할 것이다. 먼저, 이 글에서는 2️⃣도메인, 레포지토리, 서비스를 개발하고 다음 글에서는 MVC 모델을 구현하기 위해 필요한 개념인 3️⃣'의존성 주입'에 대해 학습하고, 그 다음 글에서는 4️⃣MVC로 회원관리를 해보고, 이를 5️⃣DB와 연결하며 JPA에 대해 배울 것이다. [목차] 1. 비지니스 요구사항 정리 2. 클래스 의존 관계 설계 3. 회원 도메인과 레포지토리 만들기 4. 회원 레포지토리 테스트 케이스 작성 5. 서비스 개발 6. 서비스 테스트 케이스 작성 1. 비즈니스 요구사항 정리 어떤 비지니스 로직을 만들지 결정하기 전에, 무엇인지 요구되는지 정리할 ..
[스프링 입문] 화면 띄우기 화면을 보여주는 세가지 방법 정적 컨텐츠 - html 파일을 그대로 보여주는 방법 MVC와 템플릿 엔진 - 백엔드에서 코딩을 통해 html을 동적으로 바꾸는 방법 / 컨트롤러나 템플릿 엔진을 사용함 API - 다른 데이터 포맷(ex. json)으로 클라이언트에게 데이터를 직접 전달하는 방법 정적 컨텐츠 스프링 부트는 기본적으로 resource 폴더 안에 static 폴더를 가지고 있으며 (= resource/static) 이 폴더에서 정적 컨텐츠(html 등)을 찾아 사용한다. 정적이지 않은 html은 resource/templates 폴더에 저장된다. cf. 스프링 부트가 제공하는 Welcome Page 기능 스프링은 resources/static/index.html 파일을 찾아 Welcome page..
[꾸글] 6기 회고록 Intro. 2021년에 다솔언니께 꾸글을 물려받은(?) 이후로 1년이 지났다. 그동안 꾸글 3,4,5,6기를 진행했는데 모든 기수마다 내게 특별한 의미가 있다. 3기를 시작할 때는 친구에게 공지 멘트를 하나 하나 검토받았다. 4기에서는 사람들을 최대한 attract 하는게 가장 중요하다고 생각해서 많이 끌어모으고 막상 유지를 하지 못했다. 5기에서 4기 때 실패한 요인을 분석했고, 보완했다. 그리고 바꾼 전략이 맞다는 확신을 받았다. 그렇다면 6기는? 6기는 나에게 어떤 기수이지? 라는 내용을 KPT (Keep-Problem-Try) 형식을 빌려 이야기하고자 한다. 8주간 작성한 글 1주차 : 2022년 회고록 https://yonsodev.tistory.com/85 2주차 : 2023년 목표 http..
교환학생 회고록 Intro. 한국에 도착하면, '교환학생 어땠어?'라는 질문을 많이 들을 것이다. 상대는 예의상 물어본 것일 텐데, 갑자기 진지한 이야기로 넘어가게 되거나, 너무 길게 이야기하게 될까 봐 케쥬얼하게 '좋았지~'라고 답할 것 같다. 그래서 이 회고록에서는 '교환학생 어땠어?'라는 질문을 들었을 때 내가 정말로 하고 싶은 말을 제한 없이 풀어보고 싶다. 경험이라는 단어 많은 교환학생들이 교환학생을 통해 얻은 최고의 가치를 '경험'으로 꼽는다. 정말 맞는 말이지만, 한편으로는 아쉬움도 남는다. 경험이라는 단어는 모든 것을 아우르지만, 너무 포괄적이기 때문에 구체적으로 어떤 것들을 얻었는지 표현하기 어렵다고 생각한다. 교환학생을 가기 전, 수기를 찾아볼 때도 '다양한 경험을 할 수 있었다'라고 일축하고 넘어가는..
[강연] 시드웨일 웨비나 - 개발자 물경력 위기 극복 노하우 홀맨님이 지난 웨비나에서 이렇게 말씀하셨다. '지금 외부에서 보긴 개발자 취업 호황인 것 같고, 누구나 개발자가 될 수 있다고 기관들에서 광고를 하고 있지만, 사실 개발자 취업의 문은 닫히고 있다. 취업하실 거면 빨리 해라' 솔직히 그때만 해도 그 말이 잘 와닿지 않았고, 일어난다고 하더라도 2-3년 뒤의 일이 되리라 생각했다. 하지만 지금 돌아가는 상황을 보면, 예견하신 것처럼 개발자 고용 한파가 닥치고 있다. (이 일을 계기로 홀맨님의 통찰력을 더 신뢰하게 되었다.) 그래서 이번 웨비나에서는, 이런 '정리해고'의 시대에서 개발자가 어떻게 물경력을 극복하고 다음 단계로 넘어갈 수 있는지에 대한 이야기를 해주셨다. 선택의 중요성 벌써 3번째 웨비나에 참여하는데, 그때마다 항상 하시는 말씀들이 있다. - ..
통계적 관점에서의 머신러닝 귀납적 추론과 통계의 관계 귀납적 추론이란, 개별적인 사실로부터 일반적인 결론을 이끌어내는 추론법이다. 귀납적 추론으로 가장 잘 알려진 예시를 살펴보자. 개별적 사실 1 : 맹자는 죽었다. 개별적 사실 2 : 소크라테스도 죽었다. 일반적 결론 : 그러므로 모든 사람은 죽는다. 이때 도출한 결론인 '그러므로 모든 사람은 죽는다'는 사실일수도 있지만 거짓일수도 있다. (모든 사람에 대한 개별적 사실이 있는 것이 아니므로) 여기서 알 수 있다시피, 귀납적 추론에 의한 결론은 불확실성(uncertainty)를 가지고 있다. 그리고 이 불확실성은 확률로 측정을 할 수 있다. eg. 그러므로 모든 사람은 죽는다. (uncertainty : 0.001) cf. 이때, 불확정성을 측정하는 확률을 어떻게 계산할 수 있을..