본문 바로가기

분류 전체보기

(157)
[JAVA] 람다식, Stream, Optional 람다식 익명함수 함수의 구성을 (매개변수 목록) -> {실행문} 으로 간단하게 한 것 한번 쓰이고 말 함수를 람다식으로 선언하면 코드를 간결하게 할 수 있다. 람다식에서 주의해야할 것 (출처 : https://mine-it-record.tistory.com/476) 메서드이름과 반환타입의 경우에는 생략할 수 있다. (대부분 생략한다.) 매개변수의 타입을 추론할 수 있는 경우에는 타입을 생략할 수 있다. (대부분 생략이 가능하다.) 매개변수가 하나인 경우에는 괄호( )를 생략할 수 있다. 함수의 몸체가 하나의 명령문만으로 이루어진 경우에는 중괄호{ }를 생략할 수 있다. (이때 세미콜론은 붙이지 않음) 함수의 몸체가 하나의 return 문으로만 이루어진 경우에는 중괄호{ }를 생략할 수 없다. return..
어떤 개발자가 되고 싶은가? (feat. 취준준생의 우울) 이제는 취준준생이 아니라 취준생입니다. 작년까지 나는 스스로를 취준준생(취업 준비를 준비하는 사람)이라고 말하고 다녔다. 단어 자체가 귀엽기도 하지만, 주니어 개발자조차 되지 않는 나의 아기자기한 실력(...)을 자조하는 의미도 담겨있었다. 그런데 요즘은 취준준생에서 완전한 '취준생'으로 바뀌고 있는 것 같다. 이제는 명확히 분야를 정했으며, 본격적으로 코테를 준비하고, 면접 질문들을 읽고 있다. 그러던 중 '어떤 개발자가 되고 싶은가?'라는 주제로 쓰인 글을 보게 되었다. 우테코의 막바지에 크루들이 작성한 글이었는데, 왜인지 보고 있으면서 숨이 턱 하니 막혔다. 나는 어떤 개발자가 되고 싶지?를 생각하면 할 수록 우울해지는 것이었다... 그 우울감이 왜 들었는지를 열심히 생각해보았다. 우선, 내 영역이..
회원 관리 예제 - 웹 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. 한국에 도착하면, '교환학생 어땠어?'라는 질문을 많이 들을 것이다. 상대는 예의상 물어본 것일 텐데, 갑자기 진지한 이야기로 넘어가게 되거나, 너무 길게 이야기하게 될까 봐 케쥬얼하게 '좋았지~'라고 답할 것 같다. 그래서 이 회고록에서는 '교환학생 어땠어?'라는 질문을 들었을 때 내가 정말로 하고 싶은 말을 제한 없이 풀어보고 싶다. 경험이라는 단어 많은 교환학생들이 교환학생을 통해 얻은 최고의 가치를 '경험'으로 꼽는다. 정말 맞는 말이지만, 한편으로는 아쉬움도 남는다. 경험이라는 단어는 모든 것을 아우르지만, 너무 포괄적이기 때문에 구체적으로 어떤 것들을 얻었는지 표현하기 어렵다고 생각한다. 교환학생을 가기 전, 수기를 찾아볼 때도 '다양한 경험을 할 수 있었다'라고 일축하고 넘어가는..