<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>dayoung_.log</title>
        <link>https://velog.io/</link>
        <description>Back-end</description>
        <lastBuildDate>Tue, 14 May 2024 09:08:18 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>dayoung_.log</title>
            <url>https://velog.velcdn.com/images/dayoung_/profile/357031da-5030-4e18-9619-c792ccf45563/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. dayoung_.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/dayoung_" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[ [패스트캠퍼스] 자바 강의 후기]]></title>
            <link>https://velog.io/@dayoung_/%ED%8C%A8%EC%8A%A4%ED%8A%B8%EC%BA%A0%ED%8D%BC%EC%8A%A4-%EC%9E%90%EB%B0%94-%EA%B0%95%EC%9D%98-%ED%9B%84%EA%B8%B0</link>
            <guid>https://velog.io/@dayoung_/%ED%8C%A8%EC%8A%A4%ED%8A%B8%EC%BA%A0%ED%8D%BC%EC%8A%A4-%EC%9E%90%EB%B0%94-%EA%B0%95%EC%9D%98-%ED%9B%84%EA%B8%B0</guid>
            <pubDate>Tue, 14 May 2024 09:08:18 GMT</pubDate>
            <description><![CDATA[<p> 2023년 나는 휴학을 하고 백엔드 부트 캠프 과정을 수료했다. 6개월이란 시간은 무언가를 배우고 익히고 내 것으로 만들기에는 길지만 짧은 시간이었다. 그래서 그때 익히고 배운 것을 다시 복습하고 내 것으로 만들기 위해 나는 다시 한번 국비지원 교육을 들어야겠다고 생각했다.</p>
<p> 올해 나는 복학을 했기에 작년과 같이 6개월이라는 시간을 부트 캠프에 투자할 수는 없었다. 그렇게 여러 강의를 찾던 중 나는 패스트 캠퍼스의 강의를 찾게 되었다.</p>
<p> 내가 이번에 들은 자바&amp;spring 강의는 동영상 강의로 내가 스스로 계획을 세워 종강 기간 안에 강의를 들으면 되어서 좋았다. 다만, 아쉬운 점이 있다면 학교 공부와 병행하다 보니 생각보다 강의를 들을 시간이 부족했고, 꼭 해야겠다고 다짐했던 파이널 프로젝트를 기간 안에 끝내지 못했다는 것이다. (기간이 지나기는 했지만 파이널 프로젝트는 꼭 완성할 계획이다!)</p>
<p> 이번 강의를 들으면서 배웠던 것을 다시 복습하고 내가 약한 부분에 약한지 알 수 있게 되었다. 변수는 데이터를 저장하는 메모리 공간 이름, 자료형은 변수의 크기와 어떤 종류에 데이터를 저장할 것인지를 결정하는 것이며 할당은 변수에 데이터를 저장하는 것이라는 기본적인 개념을 다시 정리할 수 있었다.
 <img src="https://velog.velcdn.com/images/dayoung_/post/21a07452-3364-4103-818f-c2131b977dcd/image.png" alt=""></p>
<p> 또한 자바에서 중요한 개념인 객체지향프로그래밍에 대한 개념도 다시 정리할 수 있어서 좋았다.
 <img src="https://velog.velcdn.com/images/dayoung_/post/e2254468-e977-4ee5-b07b-3709fc26ecef/image.png" alt=""></p>
<p> 패스트캠퍼스 강의를 들으면서 좋았던 점은 강의를 들으면서 중요한 부분이나 몰랐던 부분을 강의 옆에 있는 노트 부분에 적을 수 있다는 점이다. 또한 이렇게 작성한 노트들을 마이페이지에서 볼 수 있어서 필요할 때 찾아보기 좋았다.
 <img src="https://velog.velcdn.com/images/dayoung_/post/e9637e71-74a4-4d97-b44c-cb83a992b35e/image.png" alt=""></p>
<p> 현재 학교를 다니고 있어서 학교를 다니면서 들을 수 있는 강의를 찾다가 사전조사 없이 듣게 된 강의였어서 걱정이 많았는데, 강사님들도 좋으시고 동영상 강의의 내용도 좋았던 것 같다. 다만, 학교를 다니면서 강의를 듣다 보니 강의를 못 듣는 날이 많았고 그러다 보니 강의가 밀려 계획대로 강의를 듣지 못한 부분이 많이 아쉽다.</p>
<p> 패스트캠퍼스 강의는 종강이지만 앞으로도 꾸준히 공부해야겠다.😶‍🌫️</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[🐾Pre-Project D+4🐾]]></title>
            <link>https://velog.io/@dayoung_/Pre-Project-D3-sey565cc</link>
            <guid>https://velog.io/@dayoung_/Pre-Project-D3-sey565cc</guid>
            <pubDate>Thu, 10 Aug 2023 13:46:50 GMT</pubDate>
            <description><![CDATA[<p>오늘은 어제와 같이 프론트엔드와 백엔드로 나누어 프론트엔드는 화면 정의서를 백엔드는 API 명세서를 작성했다. API 명세서를 작성하면서 어제 작성했었던 테이블 명세서와 사용자 요구사항 정의서를 <strong>다시 보다 보니 수정해야 할 부분</strong>이 보였다.</p>
<p>회원가입을 진행할 때 닉네임, 이메일, 비밀번호가 필요한데 비밀번호의 자릿수와 특수 부호 여부 등 정해지지 않은 부분들이 눈에 보였다. 또한, 원래는 투표를 진행할 때 하나의 게시글에서 하나의 댓글에만 투표가 가능하도록 구현할 예정이었으나 그렇게 구현하는 게 더 복잡할 것 같다는 생각에 모든 댓글에 투표가 가능하도록 변경하였다. 이 외에도 꽤 많은 부분을 추가, 삭제, 변경하였다.</p>
<p>그렇게 오전에는 화면 정의서와 API 명세서를 작성하고, 오후에는 다 같이 모여 작성된 것들을 보며 수정할 부분이 있는지 추가하거나 뺄 부분이 있는지에 대해 이야기를 나누었다.</p>
<p>이후에는 CI/CD에 대해 이야기를 나누었다. CI/CD에 대해 배우기는 했지만 며칠 배우지 않아서 그런지 어떻게 해야 할지 막막해 각자 공부하는 시간을 가지며 이야기를 나누었다. 이야기를 나눈 결과 우리 팀은 AWS을 사용하기로 했다. AWS을 사용하기로 한 이유는 가장 많은 사람들이 사용하기도 하고 실습을 AWS로 진행했었기 때문이다. 다만, 잘못 설정하면 과금된다는 이야기가 많아 그 부분이 걱정이다.</p>
<p>내일은 CI/CD를 구현하기로 했다. 아마 내일 하루는 CI/CD 구현을 하면 정규 수업 시간이 끝나지 않을까라는 생각이 든다. 지금까지 계획한 부분을 이제 구현해야 한다고 생각하니 잘 할 수 있을지에 대한 걱정이 든다. 그리고 과연 내가 알바를 하면서 프로젝트를 해낼 수 있을지도 걱정이 된다. 그래도 열심히 하면 어떻게 결과물은 나오지 않을까..라는 생각이다. 그리고 이미 많은 걸 배웠지만 이번 프로젝트를 통해 많은 걸 배울 수 있을 것 같아 의미있는 경험이 될 것 같다. (TMI로 체력이 되지 않아 프로젝트를 할 때 어려움을 겪을까봐 오늘부터 다시 운동을 시작했다... 요즘 체력이 좋지 않은걸 너무나 잘 느끼고 있었기에..ㅎㅎ 🤧)</p>
<p><img src="https://velog.velcdn.com/images/dayoung_/post/859ffa83-10bc-4d25-9f06-80f18099af95/image.gif" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[🐾Pre-Project D+3🐾]]></title>
            <link>https://velog.io/@dayoung_/Pre-Project-D3</link>
            <guid>https://velog.io/@dayoung_/Pre-Project-D3</guid>
            <pubDate>Wed, 09 Aug 2023 15:23:38 GMT</pubDate>
            <description><![CDATA[<p>오늘은 어제 작성하던 사용자 요구사항 정의서를 이어 작성했다.
어제 틀을 잡아놓기는 했지만 어떤 기능이 필요하며 그 기능을 우리가 구현할 수 있을지 생각하며 작성하다 보니 오늘도 시간이 많이 소요되었다.</p>
<p>처음에는 다 같이 작성하였지만 필요 기능을 큰 카테고리로 나누어 각자 작성한 뒤 모여서 수정하는게 효율적일 것 같다는 의견에 따라 <strong>&lt; 멤버십 / 게시글 / 게시글 목록 &gt;</strong> 카테고리로 나누어 각 카테고리마다 2명이 협동해 작성하였다.</p>
<p>이후에는 <em>프론트엔드</em> 분들은 _화면 정의서_를 _백엔드_는 _테이블 명세서_를 작성하였다.
사실 테이블을 만드는 실습을 많이 해보지 않아서 테이블의 중요함을 모르고 있었는데 아침 특강(?)에서 강사님이 &quot;<strong>테이블을 만드는 일이 중요하다</strong>&quot;는 말씀을 해주셨다. 그리고 실제로 테이블을 만들다 보니 테이블을 만드는 일이 왜 중요하다고 말씀하셨는지 알게 되었다. 하나의 테이블을 만들 때 <strong>그 테이블에는 어떤 데이터들이 포함되어야 하는지</strong> 그리고 *<em>테이블 간의 관계는 어떻게 되는지 *</em>정해야 하는데 이렇게 정한 테이블을 바탕으로 코드를 작성해야 하기 때문이다.</p>
<p>테이블에 포함될 데이터를 생각하는 것은 그렇게 어렵지 않았지만 테이블 간의 관계를 정할 때에는 어려움을 겪었다.</p>
<blockquote>
<p>한 명의 회원이 한 게시물에서 하나의 댓글에만 투표를 할 수 있다고 가정했을 때 <strong>회원 테이블과 투표 테이블의 관계</strong>, <strong>게시물 테이블과 투표 테이블의 관계</strong>를 어떻게 정해야 할지 많은 이야기를 나누었다. 나온 의견으로는 다대다, 일대다가 있었다. 많은 이야기를 나누고 구글링, GPT 등의 도움을 받아 이야기를 나눈 결과 처음 의견대로 <strong>일대다</strong>가 맞겠다는 결론을 내렸다.</p>
</blockquote>
<p>그렇게 테이블과 테이블 명세서를 다 작성한 줄 알았지만 화면 정의서, 사용자 요구사항 정의서에서 수정 부분이 생길 때마다 테이블과 테이블 명세서도 수정을 해야 했다. 이를 통해 처음에 사용자 요구사항 정의서를 작성할 때 명확하게 작성하면 좋겠다고 생각하게 되었다.</p>
<p><img src="https://velog.velcdn.com/images/dayoung_/post/ffc91605-5669-46b7-91af-566b1c4d4306/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[🐾Pre-Project D+2🐾]]></title>
            <link>https://velog.io/@dayoung_/Pre-Project-D2</link>
            <guid>https://velog.io/@dayoung_/Pre-Project-D2</guid>
            <pubDate>Tue, 08 Aug 2023 11:59:43 GMT</pubDate>
            <description><![CDATA[<p>드디어 project를 시작하게 되었다.
<strong>project 주제는 스택오버플로우</strong> 웹이다. 이번 project는 코드스테이츠 측에서 주제를 정해주었다. main project는 팀원들과 함께 주제를 정해야 하는데 주제를 정하는 데에도 꽤 많은 시간이 소요될 수도 있을 것 같다는 느낌이 문득 들었다.</p>
<p>project를 시작하기 전에는 막연히 걱정되었는데 막상 project를 시작하니 이 기능들을 내가 구현할 수 있을지 더 걱정이 된다. 그런데 감사하게도 백엔드 팀원들 역량을 체크하던 중 팀장님이 어려운 부분이 있으면 언제든 서로 묻고 알려주면 좋겠다며 좋은 분위기를 만들어 주셔서 조금은 마음이 편해지는 부분과 함께 진짜 잘 하고 싶다는 생각이 들었다.</p>
<p>오늘은 <strong>팀원들과 함께 어떠한 기능들을 구현할지 정하고 사용자 요구사항 정의서를 조금 작성</strong>하였다. 사용자 요구사항 정의서를 항상 들어만 보다가 막상 작성하려니 무엇을 어떻게 작성해야 할지 막막했다. 그래서 생각보다 많은 시간이 소요되었다.</p>
<p>그렇게 회의를 진행하던 중 팀원 분들도 요구사항 정의서를 작성하는 것이 처음이라 어려워 보이셨다. 그래서 구글링을 통해 예시를 찾아 보여 드렸는데 조금은 도움이 된 것 같아 다행이었다.(사실 오늘 마이크 문제가 있어 채팅으로만 회의에 참여했다,,,) 앞으로도 조금이라도 도움이 될 수 있는 사람이 되면 좋겠다.🙏</p>
<p><img src="https://velog.velcdn.com/images/dayoung_/post/ae9ec69a-6dce-431d-80b7-1039c9cc6f7a/image.gif" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[🙌Section2 회고🙌]]></title>
            <link>https://velog.io/@dayoung_/Section2-%ED%9A%8C%EA%B3%A0</link>
            <guid>https://velog.io/@dayoung_/Section2-%ED%9A%8C%EA%B3%A0</guid>
            <pubDate>Thu, 08 Jun 2023 07:07:00 GMT</pubDate>
            <description><![CDATA[<h1 id="🪄-목표-상기"><strong>🪄 목표 상기</strong></h1>
<ul>
<li><p>현재 &#39;내&#39;가 학습을 통해 이루고자 하는 것은 <strong>백엔드 개발자가 되기 위해서는 무엇을 공부해야 하며, 그것들을 어떻게 적용하는지 익히는 것</strong>이다.</p>
</li>
<li><p>내가 현재 바라보는 목표를 모두 이루었다면 &#39;나&#39;는 <strong>나의 계획대로 학교로 돌아가 현장실습을 통해 실무경험을 익히고 졸업을 해 백엔드 개발자가 되기 위해 취업 준비를 하고 있을 것</strong>이다.</p>
</li>
<li><p>&#39;나&#39;에게서 <strong>현재 배운 내용들이 머릿속에 정리가 되어 질문을 받았을 때 막힘없이 답변을 할 수 있으며, 주어진 과제 / 프로젝트를 수행하는데 있어 큰 어려움이 없다면</strong> 목표를 이루었다고 말할 수 있다.</p>
</li>
</ul>
<h1 id="🪄-keep"><strong>🪄 KEEP</strong></h1>
<ul>
<li><p>목표를 달성하기 위해 시도했던 것 중 가장 효과적이었던 노력은 <strong>하루의 계획을 전 날에 미리 세워두고 계획에 맞춰 복습을 진행하고 복습한 내용과 관련된 문제들을 풀어보았던 것이 학습했던 내용을 다시 정리하고 문제들을 새로운 관점으로 풀어볼 수 있어서 좋았다.</strong></p>
</li>
<li><p>목표를 달성하기 위해 했던 노력 중 반드시 유지해야 할 것은 <strong>배웠다고 끝이 아니라 배운 내용을 내가 완전히 이해할 수 있을 때까지 반복해서 학습하고 부족한 부분을 채울 수 있도록 노력하는 것</strong>이다.</p>
</li>
</ul>
<h1 id="🪄-problem-">*<em>🪄 PROBLEM *</em></h1>
<ul>
<li><p>목표를 달성하기 위해 세웠던 계획 중 가장 유지하기 어려웠던 것은 *<em>Section1의 회고와 비슷하게 매일 저녁 블로깅을 하는 시간을 가지는 것이 어려웠다. 뒤로 갈 수록 공부해야 할 것이 많아지고 내용이 어려워져 그 날에 배운 내용, 앞에서 배웠던 내용을 복습하고 정리를 하기에도 하루가 부족했기에 블로깅까지 할 시간적 여유가 없었다. *</em></p>
</li>
<li><p>목표를 달성하는데 있어서 가장 큰 장애물은 <strong>이 또한 Section1 회고와 비슷하다. 매주 주말마다 알바를 하다보니 학습할 시간이 부족한 것뿐만이 아니라 휴식 시간(온전히 쉴 수 있는 시간) 역시 별로 없다보니 시간이 지날수록 점점 지친다는 느낌을 많이 받는다.</strong>  (+ 최근에는 평일에도 나와 달라는 연락을 받아서 수업을 끝나고 바로 알바를 갔었는데 다음 날이 너무 힘들었다😪)</p>
</li>
</ul>
<h1 id="🪄-try"><strong>🪄 TRY</strong></h1>
<ul>
<li><p>목표를 달성하기 위해 <strong>공부 시간과 휴식 시간을 적절히 가져야 한다고 생각한다. 하루를 마무리 하면서 내가 하고 싶은 것을 할 수 있는 시간을 가짐으로써 휴식 시간을 가지고, 짜투리 시간을 활용해 그 시간에 할 수 있는 공부를 해야겠다.</strong></p>
</li>
<li><p>목표를 달성하기 위해 계속 유지해야 할 노력은 <strong>아침에 일어나 가벼운 운동을 함으로써 체력을 유지하는 것, 전 날 계획한 것을 바탕으로 학습이 끝난 후 복습 시간을 가지는 것</strong>이다.</p>
</li>
</ul>
<h1 id="🪄-우선순위-정하기"><strong>🪄 우선순위 정하기</strong></h1>
<ol>
<li><p>매일 복습하기 (조금이라도!)</p>
</li>
<li><p>최소 일주일에 한 번 블로그 작성 시간 가지기!</p>
</li>
<li><p>채용 공고 확인하기! (어떤 기업을 가고 싶은지, 어떤 분야로 가고 싶은지 찾아보기)</p>
<p>(+적절한 휴식 시간과 공부 시간 가지기😶‍🌫️)</p>
</li>
</ol>
<blockquote>
<p>  +Section2를 진행하면서는 처음부터 끝까지 처음보는 내용들이라 많이 어렵고 힘이 들었다. (사실 아직도 많은 부분을 이해하지 못 했다,,,) 그래도 페어를 통해 만난 분들이 많이 도와주시고 어려운 점들도 함께 공유하다 보니 열심히 해야겠다는 동기부여가 되었고 즐겁게(?) 학습을 진행할 수 있었다.</p>
<p> 데이터베이스를 배우고 실습하는 과정에서는 페어분과 함께 어떻게 시작을 해야할지 모르겠어서 다른 분들께 부탁해 그 분들과 함께 페어를 진행했던 적도 있었다. (그 분들이 없었다면 나는 아직도 데이터베이스 실습을 끝내지 못 했을 수도,,,도와주신 분들께 감사의 말을 다시 전해본다.🙏)</p>
<p>Section3부터는 더 어렵다는 말을 들어 벌써 너무 걱정이 된다. 그런 의미로 오늘 미리 예습을 해봐야겠다😏</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/dayoung_/post/970c4def-767d-477f-96b8-65b81d067626/image.gif" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[🙌Spring Framework🙌]]></title>
            <link>https://velog.io/@dayoung_/Spring-Framework</link>
            <guid>https://velog.io/@dayoung_/Spring-Framework</guid>
            <pubDate>Thu, 01 Jun 2023 14:55:51 GMT</pubDate>
            <description><![CDATA[<h4 id="✏️-framework란"><strong>✏️ Framework란?</strong></h4>
<p>Framework란 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게 일련의 협업화된 형태로 클래스들을 제공하는 것이다.
ex) 자동차의 뼈대가 되는 강판으로 된 껍데기 </p>
<h4 id="✏️-framework의-장점">✏️ Framework의 장점</h4>
<ul>
<li><p>효율적으로 코드를 작성할 수 있다.</p>
</li>
<li><blockquote>
<p>개발하고자 하는 애플리케이션을 처음부터 전부 개발하는 것이 아닌 서로 다른 애플리케이션 간의 통신이나, 데이터를 데이터 저장소에 저장하는 등의 다양한 기능들을 라이브러리 형태로 제공함으로써 <strong>개발자가 애플리케이션의 핵심 로직을 개발하는 것에 집중할 수 있도록 해준다.</strong></p>
</blockquote>
</li>
<li><p>정해진 규약이 있어 애플리케이션을 효율적으로 관리할 수 있다.</p>
</li>
<li><blockquote>
<p>정해진 규약에 맞게 코드를 작성함으로, <strong>유지보수가 필요한 경우 더 빠르고 쉽게 문제점을 파악해 수정할 수 있으며, 비슷한 기능을 개발할 때 코드의 재사용이 용이하고 기능의 확장 또한 쉽게 가능하다.</strong></p>
</blockquote>
</li>
</ul>
<h4 id="✏️-framework의-단점">✏️ Framework의 단점</h4>
<ul>
<li><p>내가 사용하고자 하는 Framework에 대한 학습이 필요하다.</p>
</li>
<li><blockquote>
<p>Framework에서 정하는 규약들을 학습할 시간이 필요하다.</p>
</blockquote>
</li>
<li><p>자유롭고 유연한 개발이 어렵다.</p>
</li>
<li><blockquote>
<p><strong>우리가 사용하는 Framework의 규약을 벗어나기 어렵다.</strong> 이미 만들어진 애플리케이션에서 Framework를 변경하거나, 유연한 개발을 위해 Framework를 사용하지 않게 변경할 경우 많은 시간과 노력이 필요하다.</p>
</blockquote>
</li>
</ul>
<h4 id="✏️-framework-vs-library">✏️ Framework VS Library</h4>
<ul>
<li><p>Library는 애플리케이션을 개발하는 데 사용되는 일련의 데이터 및 프로그래밍 코드이다.</p>
</li>
<li><blockquote>
<p>애플리케이션을 개발할 때 필요한 기능을 미리 구현해 놓은 집합체
ex) 자동차 바퀴, 엔진...</p>
</blockquote>
</li>
<li><p><strong>Framework를 교체하는 일은 어렵지만, Library는 쉽게 교체가 가능하며 필요한 Library들을 선택적으로 사용할 수 있다.</strong></p>
</li>
</ul>
<p><strong>=&gt; Framework는 개발자가 애플리케이션의 핵심 로직을 개발하는 것에 집중하도록 해준다.</strong></p>
<p><strong>=&gt; Library는 애플리케이션 흐름의 주도권이 개발자에게 있는 반면, Framework는 애플리케이션 흐름의 주도권이 개발자가 아닌 Framework에 있다.
**
**=&gt; Framework는 Library를 포함한다.</strong></p>
<h4 id="✏️-pojo">✏️ POJO</h4>
<ul>
<li><p>IoC/DI, AOP, PSA를 통해 달성할 수 있다.</p>
</li>
<li><p>&#39;PO&#39;는 java로 생성하는 순수한 객체를 의미한다.</p>
</li>
<li><p>POJO 프로그래밍 기본적인 규칙</p>
</li>
<li><blockquote>
<p><strong>Java나 Java의 스펙(사양)에 정의된 것 이외에는 다른 기술이나 규약에 얽매이지 않아야 한다.</strong></p>
</blockquote>
</li>
<li><blockquote>
<p><strong>특정 환경에 종속적이지 않아야 한다.</strong></p>
</blockquote>
</li>
</ul>
<h4 id="✏️-pojo-프로그래밍이-필요한-이유는">✏️ POJO 프로그래밍이 필요한 이유는?</h4>
<ul>
<li><p>특정 환경이나 기술에 종속적이지 않으면 재상용이 가능하고, 확장 가능한 유연한 코드를 작성할 수 있다.</p>
</li>
<li><p>저수준 레벨의 기술과 환경에 종속적인 코드를 애플리케이션 코드에서 제거함으로써 코드가 깔끔해진다.</p>
</li>
<li><p>코드가 깔끔해지기 때문에 디버깅하기도 상대적으로 쉽다.</p>
</li>
<li><p>특정 기술이나 환경에 종속적이지 않기 때문에 테스트 역시 단순해진다.</p>
</li>
<li><p><strong>객체지향적인 설계를 제한 없이 적용할 수 있다.</strong></p>
</li>
</ul>
<h4 id="✏️-pojo와-spring의-관계">✏️ POJO와 Spring의 관계</h4>
<ul>
<li>Spring은 POJO 프로그래밍을 지향하는 Framework이다.</li>
</ul>
<h4 id="✏️-ioc">✏️ IoC</h4>
<ul>
<li><p>애플리케이션 흐름의 주도권이 뒤바뀌는 것이다.</p>
</li>
<li><p>Spring에 IoC의 개념이 적용되도록 도와주는 것은 DI이다.</p>
</li>
</ul>
<h4 id="✏️-di">✏️ DI</h4>
<ul>
<li>DI는 의존성 주입이다.</li>
</ul>
<h4 id="✏️-aop">✏️ AOP</h4>
<ul>
<li><p>관심 지향 프로그램</p>
</li>
<li><p>애플리케이션을 개발할 때 애플리케이션 전반에 걸쳐 공통적으로 사용되는 기능들에 대한 관심사를 <strong>공통 관심 사항(=부가적인 관심 사항)</strong>이라고 한다.</p>
</li>
<li><p>애플리케이션의 주목적을 달성하기 위한 핵심 로직에 대한 관심사를 <strong>핵심 관심 사항</strong>이라고 한다.</p>
</li>
</ul>
<p>=&gt; AOP는 애플리케이션의 핵심 업무 로직에서 로깅, 보안, 트랙잭션 같은 공통 기능 로직들을 분리하는 것이다.</p>
<h4 id="✏️-psa">✏️ PSA</h4>
<ul>
<li>PSA는 <strong>추상화</strong>로 어떤 클래스의 본질적인 특성만을 추출해서 <strong>일반화</strong> 하는 것이다.</li>
</ul>
<p>=&gt; 클라이언트가 <strong>추상화된 상위 클래스를 일관되게 바라보며 하위 클래스의 기능을 사용하는 것</strong>이 바로 PSA의 기본 개념이다.</p>
<p>=&gt; 애플리케이션에서 특정 서비스를 이용 할 때, <strong>서비스의 기능을 접근하는 방식 자체를 일관되게 유지하면서 기술 자체를 유연하게 사용할 수 있도록 하는 것</strong>이다.</p>
<blockquote>
<p>Spring에 대해서 들어만 보다가 이번에 처음으로 공부하게 되었는데 뭔가 알 것 같으면서도 모르겠다,,, 그래도 Spring을 배워서 익히면 훨씬 편할것 같다는 느낌이 들었다..! 다음에 다시 볼 때는 다 이해했기를🙏</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/dayoung_/post/1d2685f7-3ef8-486c-9d6e-eda3b6e6f1a2/image.gif" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[JSON❓]]></title>
            <link>https://velog.io/@dayoung_/JSON</link>
            <guid>https://velog.io/@dayoung_/JSON</guid>
            <pubDate>Thu, 11 May 2023 13:37:50 GMT</pubDate>
            <description><![CDATA[<h1 id="json">JSON</h1>
<p>-JavaScript Object Notation의 줄임말로, 데이터 교환을 위해 만들어진 객체 형태의 포맷이다.</p>
<h1 id="객체---json">객체 -&gt; JSON</h1>
<blockquote>
<ul>
<li>writeValueAsString : 아래의 코드에서 writeValueAsString 메서드는 ObjectMapper 객체를 사용하여 호출하며, 이 메서드는 JSON 문자열을 반환한다.</li>
</ul>
</blockquote>
<pre><code>import com.fasterxml.jackson.databind.ObjectMapper;

public class Example {
    public static void main(String[] args) {
        ObjectMapper mapper = new ObjectMapper();

        try {
            // Java 객체 생성
            MyObject obj = new MyObject(&quot;value1&quot;, &quot;value2&quot;);

            // writeValueAsString 메서드를 사용하여 JSON 문자열 생성
            String jsonStr = mapper.writeValueAsString(obj);

            // 생성된 JSON 문자열 출력
            System.out.println(jsonStr);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}</code></pre><h1 id="json---객체">JSON -&gt; 객체</h1>
<blockquote>
<ul>
<li>readValue : 아래의 코드에서 readValue 메서드는 ObjectMapper 객체를 사용하여 호출하며, 첫 번째 인자로는 JSON 문자열을, 두 번째 인자로는 생성할 Java 객체의 클래스 타입을 전달한다.</li>
</ul>
</blockquote>
<pre><code>import com.fasterxml.jackson.databind.ObjectMapper;

public class Example {
    public static void main(String[] args) {
        ObjectMapper mapper = new ObjectMapper();

        try {
            // JSON 문자열 생성
            String jsonStr = &quot;{\&quot;field1\&quot;:\&quot;value1\&quot;,\&quot;field2\&quot;:\&quot;value2\&quot;}&quot;;

            // readValue 메서드를 사용하여 Java 객체 생성
            MyObject obj = mapper.readValue(jsonStr, MyObject.class);

            // 생성된 Java 객체 출력
            System.out.println(obj);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
</code></pre><ul>
<li>system.out.println 에서 &quot;를 출력하기 위해서는 <strong>System.out.println(&quot;&quot;&quot;)</strong>을 입력하면 된다. =&gt; &quot;</li>
</ul>
<blockquote>
<ul>
<li><p>오늘의 회고🥹
오늘은 문제를 푸는 것으로 하루가 시작되고 마무리 되길래 가벼운 마음으로 앉아 문제를 풀기 시작했다. 그런데 문제를 보자마자 오늘 하루동안 문제만 푸는 이유가 이었다는걸 깨달았다,,, 모르는 부분, 궁금한 부분을 chat GPT에게 물어보며 풀었지만, 배열과 hashmap부분에서 막혔다...아무리 생각해도 모르겠어서 포기하고 싶었지만 페어 분의 도움으로 문제를 해결할 수 있었다.문제를 풀면서 느꼈지만 아직 앞에서 배운 내용들이 정리가 되지 않아 어떻게 사용해야할지 감이 잘 잡히지 않았다,,, 앞으로는 복습도 열심히 해야지..!!</p>
<p>문제를 풀고 git hub에 제출하는 과정에서 push가 제대로 되지 않아 fork를 하고 지우는 부분을 3번은 반복한 것 같다,,,그래도 다행히 제출은 했다!! 오늘은 막힌 부분이 많아서 그런지 평소보다 더 힘든 느낌,,, 오늘은 일찍 자고 내일부터 다시 열심히 해야겠다</p>
</li>
</ul>
</blockquote>
<p><img src="https://velog.velcdn.com/images/dayoung_/post/b82e2644-0477-4c81-ba99-ec3e17a61544/image.gif" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[❕재귀 함수❕]]></title>
            <link>https://velog.io/@dayoung_/%EC%9E%AC%EA%B7%80-%ED%95%A8%EC%88%98</link>
            <guid>https://velog.io/@dayoung_/%EC%9E%AC%EA%B7%80-%ED%95%A8%EC%88%98</guid>
            <pubDate>Wed, 10 May 2023 14:39:00 GMT</pubDate>
            <description><![CDATA[<h4 id="재귀">재귀</h4>
<p>: 원래의 자리로 되돌아가거나 되돌아오는 것</p>
<h4 id="재귀의-장점">재귀의 장점</h4>
<ol>
<li>불필요하게 여러 개의 반복문을 사용하지 않으므로 코드가 간결하고 수정이 용이하다.</li>
<li>변수를 여러개 사용할 필요가 없다.</li>
</ol>
<h4 id="재귀의-단점">재귀의 단점</h4>
<ol>
<li>반복문과 달리 코드의 흐름을 직관적으로 파악하기 어렵다. (-&gt; 개인적으로 반복문이 훨씬 편한거 같다...)</li>
<li>반복문에 비해 더 많은 메모리를 사용하게 된다.</li>
<li>컨텍스트 스위칭 비용이 발생한다.</li>
</ol>
<h4 id="재귀-함수를-사용하기-위한-조건">재귀 함수를 사용하기 위한 조건</h4>
<ol>
<li>문제의 크기를 점점 더 작은 단위로 쪼갤 수 있어야 한다.</li>
<li>재귀 호출이 종료되는 시점이 존재해야 한다.</li>
</ol>
<blockquote>
<p><strong>오늘의 회고</strong>😂
오늘은 뭔가 수월하게 진행이 된 느낌이라 백준에서 문제를 찾아 풀어 보았다. 그런데,,,아직 내가 완전히 이해를 하지 못 했다는 것을 깨달았다. 처음으로 답을 제출했을 때는 런타임 에러가 두 번째로 제출했을 때는 틀렸다는 답변을 받았다...조금 더 공부하고 풀어서 내일은 꼭 통과하기를..!</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/dayoung_/post/ff7403f6-6340-452e-a7d1-a866d3b944b8/image.gif" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[✌️Section1 회고✌️]]></title>
            <link>https://velog.io/@dayoung_/Section1-%ED%9A%8C%EA%B3%A0</link>
            <guid>https://velog.io/@dayoung_/Section1-%ED%9A%8C%EA%B3%A0</guid>
            <pubDate>Tue, 09 May 2023 14:51:48 GMT</pubDate>
            <description><![CDATA[<h1 id="목표-상기"><strong>목표 상기</strong></h1>
<ul>
<li><p>현재 내가 학습을 통해 이루고자 하는 것은 <strong>백엔드 개발자가 되기 위해 무엇을 어떻게 공부해야 하는지 익히는 것</strong>이다.</p>
</li>
<li><p>내가 현재 바라는 목표를 모두 이루었다면 나는 <strong>백엔드 개발자에 한 발자국 더 가까워져 부족한 부분을 채우기 위해 더 열심히 공부하며 취업 준비를 하고 있을 것</strong>이다.</p>
</li>
<li><p>나에게서 <strong>하나의 프로젝트를 수행하는데 있어 큰 무리가 없으며 코드스테이츠에서 배운 내용들이 내의 머릿속에서 정리가 되었을 때</strong> 나의 목표를 이루었다고 말할 수 있을 것 같다.</p>
</li>
</ul>
<h1 id="keep"><strong>KEEP</strong></h1>
<ul>
<li><p>목표를 달성하기 위해 시도했던 것 중 가장 효과적이었던 노력은 <strong>시간이 오래 걸리더라도 포기하지 않고 모르는 부분을 찾아보며 끝까지 해내었던 점</strong>이다.</p>
</li>
<li><p>목표를 달성하기 위해 했던 모든 노력 중 반드시 유지해야 할 것은 <strong>전 날에 배웠던 것을 다 이해하지 못 하더라도 다음 날의 강의를 미루지 않고 따라가는 것과 아침에 일어나 그 날에 배울 내용들이 미리 살펴 보는 것</strong>이다.</p>
</li>
</ul>
<h1 id="problem"><strong>PROBLEM</strong></h1>
<ul>
<li><p>목표를 달성하기 위해 세웠던 계획 중 가장 유지하기 어려웠던 것은 <strong>매일 저녁 블로깅을 하고 추가 학습 시간을 가지는 것이 생각보다 어려웠다.</strong></p>
</li>
<li><p>목표를 달성하는 데 있어서 가장 큰 장애물은 <strong>매주 주말 알바를 하다보니 학습시간이 부족하다는 점과 오랜만에 집에서 공부를 하다보니 자기 주도적 학습이 생각보다 잘 이루어지지 않는다는 점</strong>이다.</p>
</li>
</ul>
<h1 id="try"><strong>TRY</strong></h1>
<ul>
<li><p>목표를 달성하기 위해 <strong>알바 시간을 적당히 조율해 학습 시간을 마련하고, 자기 주도적 학습을 위해 열품타를 이용해 하루의 학습 시간을 확인할 계획</strong>이다.</p>
</li>
<li><p>목표를 달성하기 위해 <strong>매일 아침 7시에 일어나 그 날 배울 내용을 미리 확인하는 것이 좋겠다고 생각</strong>한다.</p>
</li>
</ul>
<h1 id="우선순위-정하기"><strong>우선순위 정하기</strong></h1>
<h4 id="1-열품타를-이용해-그-날-얼마나-학습을-잘-했는지-확인하기">1. 열품타를 이용해 그 날 얼마나 학습을 잘 했는지 확인하기.</h4>
<h4 id="2-매일-수업이-끝난-이후-권장학습-시간에-전에-배웠던-것-그-날에-배운-것을-복습하는-시간을-가지기">2. 매일 수업이 끝난 이후 권장학습 시간에 전에 배웠던 것, 그 날에 배운 것을 복습하는 시간을 가지기.</h4>
<h4 id="3-그-날-배운-내용을-다-이해하지-못-했더라도-어려웠던-점-등을-바탕으로-매일-블로깅-하기">3. 그 날 배운 내용을 다 이해하지 못 했더라도 어려웠던 점 등을 바탕으로 매일 블로깅 하기.</h4>
<blockquote>
<h4 id="-section1을-진행하면서-전에-공부했던-내용을-만나-반가웠던-마음도-있었지만-새로-보는-내용이-많아-어렵고-내가-잘-할-수-있을지에-대한-걱정도-들었던-것-같다-그래도-포기하지-않고-열심히-하면-언젠가는-어려웠던-내용이-이해되고-내-것이-되지-않을까-라는-생각을-했다">+ Section1을 진행하면서 전에 공부했던 내용을 만나 반가웠던 마음도 있었지만 새로 보는 내용이 많아 어렵고 내가 잘 할 수 있을지에 대한 걱정도 들었던 것 같다. 그래도 &#39;포기하지 않고 열심히 하면 언젠가는 어려웠던 내용이 이해되고 내 것이 되지 않을까&#39; 라는 생각을 했다.</h4>
<p><strong>오늘 처음으로 기술 면접이라는 것을 해보았다. 코딩테스트에 대해서는 많이 들어보았지만, 기술 면접은 이번에 처음 들어보았다. 기술 면접을 위해 내가 원하는 질문을 선택하고 그 질문에 대답을 준비해서 진행하였는데도 불구하고 많이 어려웠다. 기술 면접을 통해 아직 내가 이 내용들을 잘 이해하지 못 했구나. 라는 것을 깨닫고 어떻게 하면 쉽게 설명할 수 있을까? 라는 생각도 했던것 같다. 앞으로는 배운 것을 내 것으로 만들고 그것을 타인에게 잘 설명하는 것도 중요하다는 것을 배운 하루이다.</strong></p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/dayoung_/post/3d013e70-ac91-42cd-9c1a-2b65cce54605/image.gif" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[🎶Java 변수와 타입 & 문자열🎶]]></title>
            <link>https://velog.io/@dayoung_/Java-%EB%B3%80%EC%88%98%EC%99%80-%ED%83%80%EC%9E%85-%EB%AC%B8%EC%9E%90%EC%97%B4</link>
            <guid>https://velog.io/@dayoung_/Java-%EB%B3%80%EC%88%98%EC%99%80-%ED%83%80%EC%9E%85-%EB%AC%B8%EC%9E%90%EC%97%B4</guid>
            <pubDate>Mon, 17 Apr 2023 17:44:07 GMT</pubDate>
            <description><![CDATA[<h1 id="🤭변수와-타입">🤭변수와 타입</h1>
<ul>
<li>변수 : 값이 변할 수 있는 값을 저장하는 수단</li>
</ul>
<p>ex)</p>
<blockquote>
<p>int num1 = 1;</p>
</blockquote>
<ul>
<li><p>상수 : 값이 변하지 않는 값을 저장하는 수단
ex)</p>
<blockquote>
<p>final double PI = 3.14;
//상수를 사용할 때에는 final을 선언해야 한다.</p>
</blockquote>
</li>
<li><p>리터럴 : 문자가 가리키는 값 자체</p>
<blockquote>
<p>int num = 1;
float weight = 60.3f;
final long high = 9876543L;</p>
<p>//1 -&gt; 리터럴
//float, long 타입의 변수에 리터럴을 할당 할 때에는 뒤에 접미사 f, L을 붙여야 한다.</p>
</blockquote>
</li>
<li><p>Java의 타입은 <strong>기본 타입</strong>과 <strong>참조 타입</strong>이 있다.</p>
</li>
<li><p><em>기본 타입*</em>은 값을 저장할 때에 데이터의 <strong>실제 값</strong>이 저장되며, <strong>참조 타입</strong>은 <strong>주소값</strong>이 저장된다.</p>
</li>
</ul>
<h4 id="1-정수-타입기본-타입"><strong>1. 정수 타입(기본 타입)</strong></h4>
<p> 정수 타입은 byte, short, int, long이 있으며, 일반적으로 <strong>int형</strong>을 사용한다.</p>
<ul>
<li>오버플로우일 경우 해당 데이터 타입의 <strong>최소값</strong> 출력</li>
<li>언더플로우일 경우 해당 데이터 타입의 <strong>최대값</strong> 출력</li>
</ul>
<h4 id="2-실수-타입기본-타입">2. 실수 타입(기본 타입)</h4>
<p> 실수 타입은 float, double이 있으며, 일반적으로 <strong>double형</strong>을 사용한다.</p>
<ul>
<li>오버플로우일 경우 값은 <strong>무한대</strong> 출력</li>
<li>언더플로우일 경우 값은 <strong>0</strong> 출력</li>
</ul>
<h4 id="3-논리-타입기본-타입">3. 논리 타입(기본 타입)</h4>
<p> 논리 타입은 <strong>boolean</strong>뿐이다. 값으로는 오직 <strong>true, false</strong>만 가진다.</p>
<h4 id="4-문자-타입기본-타입">4. 문자 타입(기본 타입)</h4>
<p> 문자 타입은 <strong>char</strong>뿐이다. 문자형 리터럴을 작성할 때에는 <strong>&#39; &#39;</strong> 사용한다.( 문자열(String)에서는 <strong>&quot; &quot;</strong> 사용!)</p>
<p><img src="https://velog.velcdn.com/images/dayoung_/post/40490ef4-b6fe-4ce0-89ed-12b9d3151ab6/image.gif" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[🌟코드스테이츠 부트캠프 개강!🌟]]></title>
            <link>https://velog.io/@dayoung_/%EC%BD%94%EB%93%9C%EC%8A%A4%ED%85%8C%EC%9D%B4%EC%B8%A0-%EB%B6%80%ED%8A%B8%EC%BA%A0%ED%94%84-%EA%B0%9C%EA%B0%95</link>
            <guid>https://velog.io/@dayoung_/%EC%BD%94%EB%93%9C%EC%8A%A4%ED%85%8C%EC%9D%B4%EC%B8%A0-%EB%B6%80%ED%8A%B8%EC%BA%A0%ED%94%84-%EA%B0%9C%EA%B0%95</guid>
            <pubDate>Tue, 11 Apr 2023 13:57:58 GMT</pubDate>
            <description><![CDATA[<p> 드디어 오늘 코드스테이츠 백엔드 부트캠프 개강을 했다..!
학교 수업을 들으며 알바를 하느라 코딩을 못한지 거의 1년이 다 되어가는것 같다.
그래서 사실 걱정도 많이 되고 그동안 공부한 내용을 하나도 모를까봐 걱정을 많이 했는데 그래도 생각보다는 많이 기억하고 있는 것 같다..! (사전학습을 통해 느낀 내용이다!) 
그리고 오랜만에 해서 그런지 재미있었다! (갑자기 재미있으면 되었다는 사촌오빠의 말이 생각나는건 왜일까..?)</p>
<p>원래도 부트캠프를 시작하는 날부터 블로그를 꾸준히 작성해서 내가 그동안 무엇을 배웠고 어떤 노력을 했는지 기록할 계획이었는데 마침 코트스테이츠에서 블로깅 챌린지를 하길래 정말 마음 잡고 열심히 작성해봐야겠다고 생각했다! (사실 블로그 처음 작성해봐서 잘 작성하고 있는지 모르겠다,,,)</p>
<p>오늘은 OT 날이라 앞으로 어떻게 수업이 진행될지 사용되는 툴은 무엇인지, 툴을 어떻게 설정하는지 등에 대해서 배웠다. 그래서 사실 가볍게(?) 들으면 되는 하루였는데 아침 9시~저녁 6시까지 앉아있는게 너무 힘들었다. (고등학교 때는 어떻게 야자까지 했는지 모르겠다,,,) 게다가 집에서 들어서 그런지 너무 졸리고 침대에 눕고 싶었다. 그래도 앞으로 계속 수업을 듣다 보면 익숙해져서 괜찮지 않을까?라는 생각을 해본다.</p>
<p>오늘 OT에서 &#39;왜 꼭 개발자가 되어냐 하냐&#39;는 질문이 있었다. 사실 난 아직 이 질문에 대한 명확한 답을 찾지 못 했다. 내가 개발자가 되기로 마음 먹은 이유는 내가 대학에 와서 공부한 것을 사용하고 싶은 마음과 코딩에 흥미를 느껴서였다. 내가 부트캠프를 수료할때에는 이 질문에 대한 명확한 답과 어떤 개발자가 되고 싶은지에 대한 답도 함께 찾을 수 있으면 좋겠다.</p>
<p>내일부터는 그 날 배운 내용에 대해 정리해보고자 한다 :)
(생각나는대로 적다 보니 꽤 길어진 느낌이다.)</p>
<p><img src="https://velog.velcdn.com/images/dayoung_/post/1e9c0d2e-43d2-4939-a5a0-e76c08107e4c/image.png" alt=""></p>
]]></description>
        </item>
    </channel>
</rss>