<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>my-little-chicken.log</title>
        <link>https://velog.io/</link>
        <description>늦었지만 차근차근</description>
        <lastBuildDate>Tue, 17 Sep 2024 01:19:02 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>my-little-chicken.log</title>
            <url>https://velog.velcdn.com/images/little-chicken/profile/4ab8f530-9976-44cb-a2f1-3dcfdca2f23c/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. my-little-chicken.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/little-chicken" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[Java, macOS] 프로젝트를 Git에 연결해보자]]></title>
            <link>https://velog.io/@little-chicken/Java-macOS-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%A5%BC-Git%EC%97%90-%EC%97%B0%EA%B2%B0%ED%95%B4%EB%B3%B4%EC%9E%90</link>
            <guid>https://velog.io/@little-chicken/Java-macOS-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%A5%BC-Git%EC%97%90-%EC%97%B0%EA%B2%B0%ED%95%B4%EB%B3%B4%EC%9E%90</guid>
            <pubDate>Tue, 17 Sep 2024 01:19:02 GMT</pubDate>
            <description><![CDATA[<p>&amp;nbsp오늘은 프로젝트를 좀 더 쉽게 접근 및 관리할 수 있도록 Git Repository에 연결 해보겠습니다.
일단 프로젝트가 위치한 곳으로 이동 및 Git Initilaize를 해줍니다.</p>
<p>먼저 github을 이용할 것임으로 Repository를 생성하겠습니다.
<img src="https://velog.velcdn.com/images/little-chicken/post/fb42960a-57da-4e07-8af0-92d565df02a8/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/little-chicken/post/df4d745d-817f-4a83-8f06-f36a7ddb2b9d/image.png" alt=""></p>
<p>생성이 완료되니 친절하게 커맨드까지 안내해주네요.
저는 새로 만드는 입장이니 or create a new repository... 의 커맨드를 순서대로 입력해보겠습니다.</p>
<p><img src="https://velog.velcdn.com/images/little-chicken/post/0908661a-1ff3-46a6-8f83-e3b889f68890/image.png" alt=""></p>
<p>그랬더니 원격 저장소에 대한 권한이 없다는 문구가 보이네요!
이런 오류가 발생하는 이유는 해당 <a href="mailto:git@github.com">git@github.com</a> 에 연결된 ssh key 설정이 안 돼 있기 때문입니다.
먼저 ssh key를 만들어 git에 등록부터 해야겠네요.</p>
<p>ssh key를 먼저 만들어봅시다.</p>
<pre><code>cd ~/.ssh
ssh-keygen -t rsa -b 4096 -f my-demo-app-github 
👉 -t : 키의 타입으로 이 경우 rsa를 이용,
   -b : 키의 비트 수로 이 경우 4096비트를 이용,
   -f : 키 파일의 이름을 별도로 지정 저는 my-demo-app-github로 지었습니다.
mv ~/.ssh/my-demo-app-github ~/.ssh/my-demo-app-github.pem</code></pre><p><img src="https://velog.velcdn.com/images/little-chicken/post/2b5175dc-897c-4298-b53f-1a9ecf891445/image.png" alt=""></p>
<p>키 파일이 두 개 생성되었네요. pub 이라는 확장자가 붙은것이 공개 키, 아무런 확장자가 없는 키는 개인 키입니다.
이중에 우리는 공개 키를 github에 등록하고 개인 키를 이용해 본인임을 증명할 수 있게 됩니다.</p>
<p><img src="https://velog.velcdn.com/images/little-chicken/post/e92469af-7ec4-475e-8f1a-ca17e45effc8/image.png" alt="">
계정 설정의 SSH and GPG keys 항목에서 공개 키를 해당 영역에 복사 후 등록.
이 후 등록 절차를 진행해주시면 됩니다.</p>
<p>이후 간단한 커맨드로 등록된 key로 ssh 테스트를 진행할 수 있습니다.</p>
<pre><code>ssh -T git@github.com -i ~/.ssh/my-demo-app-github.pem</code></pre><p><img src="https://velog.velcdn.com/images/little-chicken/post/d7183eef-9f09-4fb9-b0d0-3e904d97a8db/image.png" alt=""></p>
<p>그 후 ssh 에이전트에 해당 ssh key를 등록해준 후 다시 git push를 해보겠습니다.</p>
<pre><code>ssh-add ~/.ssh/my-demo-app/github.pem
git push -u origin main</code></pre><p><img src="https://velog.velcdn.com/images/little-chicken/post/08f70b26-f483-4875-8786-143897009842/image.png" alt=""></p>
<p>정상적으로 push가 완료되었네요.
마지막으로 프로젝트 전체에 대해 Git Reposiotry에 Push를 해보겠습니다.</p>
<pre><code>git add .
git commit -m &quot;second commit&quot;
git push -u origin main</code></pre><p><img src="https://velog.velcdn.com/images/little-chicken/post/c6df59ea-a0c8-4430-97c7-d0e711c3dec4/image.png" alt=""></p>
<p>&amp;nbsp성공적으로 Git Repository에 로컬 프로젝트가 올라간 것을 확인할 수 있네요.
다만 공개가 될 필요가 없거나 버전 충돌 혹은 IDE, OS 등 사용자 환경에 따른 파일도 올라갈 수 있기 때문에
다음 포스팅에서는 git ignore 설정하는 방법을 알아보겠습니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Java, macOS] Spring Boot 프로젝트 생성부터 실행까지(2)]]></title>
            <link>https://velog.io/@little-chicken/Java-macOS-Spring-Boot-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1%EB%B6%80%ED%84%B0-%EC%8B%A4%ED%96%89%EA%B9%8C%EC%A7%802</link>
            <guid>https://velog.io/@little-chicken/Java-macOS-Spring-Boot-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1%EB%B6%80%ED%84%B0-%EC%8B%A4%ED%96%89%EA%B9%8C%EC%A7%802</guid>
            <pubDate>Mon, 09 Sep 2024 07:00:59 GMT</pubDate>
            <description><![CDATA[<p>Device : MacBook Pro M3 (Apple Silicon)
OS : macOS Sonoma 14.5
JDK : OpenJDK 17
IDE : Intellij 2024.1.4
DBMS : MySQL 8.0.39 Homebrew</p>
<p>지난 포스팅에 이어 이번에는 DBMS 설치와 스프링부트 어플리케이션에 대한 데이터소스 설정을 진행해보겠습니다</p>
<h2 id="0nbsp-dbms-설치">0.&amp;nbsp DBMS 설치</h2>
<p>저는 많이 사용되는 RDBMS 중 하나인 MySQL를 사용해보려 합니다
brew를 이용하여 진행해보겠습니다 (버전은 8.0을 선택했습니다)</p>
<pre><code>brew search mysql
brew install mysql@8.0</code></pre><p><img src="https://velog.velcdn.com/images/little-chicken/post/13411ce8-8b6b-42ba-95f5-f136157affab/image.png" alt=""></p>
<p>설치가 완료되더니 뭔가 안내문구가 나옵니다...
대충 읽어보니 root 계정에 비밀번호 설정없이 설치가 완료되었다는 내용과
Path설정, mysql 연결하는 등의 방법들이 적혀있네요</p>
<p>설치를 마무리 해봅시다</p>
<pre><code>mysql_secure_installation</code></pre><p><img src="https://velog.velcdn.com/images/little-chicken/post/b3e3ce31-4d7d-48ee-a1d3-34162d9ec146/image.png" alt=""></p>
<p>저는 이미 기존에 설치된 MySQL때문인지 root 계정에 대한 비밀번호를 물어보네요
각 설정에 대해 묻는 부분은 본인의 상황에 맞게 판단하여 진행해주시면 됩니다</p>
<h2 id="1-nbsp-dbms-접속">1. &amp;nbsp DBMS 접속</h2>
<p> &amp;nbsp 우선 MySQL를 실행해야겠죠?
 그 이후 로그인 및 DB들을 확인해보겠습니다</p>
<pre><code>mysql.server start
mysql -u root -p</code></pre><p><img src="https://velog.velcdn.com/images/little-chicken/post/8b99afcd-8e22-4bec-ba32-6c3652430c5c/image.png" alt=""></p>
<p>정상적으로 mysql이 실행되었으며 root 계정으로 커넥션이 정상적으로 연결되었음을 볼 수있네요
(Demo DB는 이전에 제가 생성해둔 DB입니다.. 여러분은 없는게 정상이에요!)</p>
<p>DBMS 설치가 끝났으니 이제 어플리케이션을 통해 연결을 해보겠습니다</p>
<h2 id="2-nbsp-어플리케이션-datasource-설정">2. &amp;nbsp 어플리케이션 DataSource 설정</h2>
<p>다시 프로젝트로 돌아와서 어플리케이션에 대한 설정파일을 작성해보겠습니다
우선 Class Path에 존재하는 resoruce/application.properties 찾아 파일을 열어줍니다</p>
<p><img src="https://velog.velcdn.com/images/little-chicken/post/416adc2d-e38d-4e36-9aaa-7f7e666a6e33/image.png" alt=""></p>
<p>열어보니 어플리케이션의 이름만 덩그러니 적혀있습니다
우선 DataSource에 대한 부분을 작성해주겠습니다</p>
<p><img src="https://velog.velcdn.com/images/little-chicken/post/28d62632-3ebe-408b-ab97-135c6b0f4f9b/image.png" alt="">
&amp;nbsp 2번째 줄 👉 일단 해당 어플리케이션이 사용할 포트를 지정했습니다
4<del>6번째 줄 👉 프로퍼티 파일에 직접 DataSource를 명시하는 방법입니다
9</del>11번째 줄 👉 OS의 환경변수를 통해 값을 주입할 수도 있습니다 (실행 전 OS에 환경변수 설정 필요)
14~16번째 줄 👉 JVM의 인자를 통해 값을 주입할 수도 있습니다 (실행 시 JVM Option을 통해 커맨드라인 작성)</p>
<p>편하신 방법을 선택하시면 되겠습니다
기본적인 설정이 끝났으니 어플리케이션을 실행해볼까요? 두근두근</p>
<p><img src="https://velog.velcdn.com/images/little-chicken/post/83f5d478-0209-44fc-8d2a-d0b32edac61d/image.png" alt=""></p>
<p>이전과 달리 오류 없이 정상 실행되었네요 👏👏👏
다음 포스팅에서는 본격적으로 JPA를 통해 기본 CRUD를 진행해보겠습니다</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Java, macOS] Spring Boot 프로젝트 생성부터 실행까지(1)]]></title>
            <link>https://velog.io/@little-chicken/Java-Spring-Boot-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B01</link>
            <guid>https://velog.io/@little-chicken/Java-Spring-Boot-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B01</guid>
            <pubDate>Sun, 01 Sep 2024 09:40:02 GMT</pubDate>
            <description><![CDATA[<p>Device : MacBook Pro M3 (Apple Silicon)
OS : macOS Sonoma 14.5
JDK : OpenJDK 17
IDE : Intellij 2024.1.4</p>
<h2 id="0nbsp-spring-boot란">0.&amp;nbsp Spring Boot란?</h2>
<blockquote>
<p>Java Spring Framework(Spring Framework)는 Java Virtual Machine(JVM)에서 실행되는 프로덕션급 독립형 애플리케이션을 만들기 위한 인기 있는 엔터프라이즈급 오픈소스 프레임워크입니다.</br>
Java Spring Boot(Spring Boot)는 세 가지 핵심 기능을 통해 Spring Framework를 사용하여 더 빠르고 쉽게 웹 애플리케이션과 마이크로서비스를 개발하도록 돕는 툴입니다.</br></p>
</blockquote>
<ol>
<li>자동 구성</li>
<li>구성에 대한 독선적 접근 방식</li>
<li>독립형 애플리케이션을 만드는 능력</br>
이러한 특징들이 함께 작용하여 최소한의 구성 및 설정으로 Spring 기반 애플리케이션을 설정하도록 지원하는 툴을 제공합니다.</br>
출처 : <a href="https://www.ibm.com/kr-ko/topics/java-spring-boot">ibm.com</a></li>
</ol>
<h2 id="1nbsp-프로젝트-생성">1.&amp;nbsp 프로젝트 생성</h2>
<p>&amp;nbsp프로젝트를 생성하는 방법에 대해서는 여러 방법이 있습니다
그 중 저는 Spring Initializr를 이용해서 생성해보겠습니다</p>
<h3 id="spring-initializr">Spring Initializr</h3>
<blockquote>
<p>Initializr generates spring boot project with just what you need to start quickly!
<a href="https://start.spring.io">Spring Initializr</a></p>
</blockquote>
<p>&amp;nbsp 서비스명, 설명만 봐도 기능이 유추가 될 정도로 매우 직관적이네요
그럼 한번 진행해보겠습니다</p>
<p><img src="https://velog.velcdn.com/images/little-chicken/post/079896c2-c61b-4dea-b0e6-47338b72f1be/image.png" alt=""></p>
<ul>
<li>Project : 빌드 자동화 도구를 선택할 수 있습니다.</li>
<li>Langauge : 언어를 선택할 수 있습니다. 당연하지만 Java를 선택했습니다 
(만 추후 Kotlin도 혼용해서 사용이 가능합니다! 이 부분은 추후 포스팅 예정입니다)</li>
<li>Spring Boot : 버전 선택이 가능합니다 저는 3.2.9버전을 선택했습니다
(SNAPSHOT이라 적힌 버전은 아직 개발 및 테스트 단계이므로 피했습니다)</li>
<li>Group: 기업 도메인명</li>
<li>Artifact: 빌드되어 나올 결과물</li>
<li>Name: 프로젝트명 (일반적으로 Artifact와 동일하게)</li>
<li>Description: 설명에 해당하는 부분</li>
<li>Packaging: RESTful 서버 어플리케이션을 개발 할 예정이므로 .jar를 선택했습니다</li>
<li>Java : 버전을 선택할 수 있습니다
(Spring Boot 3.0 버전 이후로는 JDK 17(LTS) 이상을 사용할 것을 강력히 권장합니다)</li>
</ul>
<blockquote>
</blockquote>
<p>🧰
 &amp;nbsp추가로 Spring Boot 3.0 버전 이후로는 상표권 문제로 기존 JavaEE 패키지명인 javax.* 를 사용할 수 없어
JakartaEE 패키지명인 jakarta.* 로 변경되었습니다.
작년에 신규 스켈레톤 프로젝트를 진행하는데 꽤나 많은 라이브러리들이 업데이트 지원이 되지않아 사용이 불가능하여
대체 라이브러리 찾느라 고생을 좀 했었던 기억이 있네요..
반드시 라이브러리들에 대해 의존여부를 확인하여 사용해야합니다!
관련 내용 : <a href="https://spring.io/blog/2022/05/24/preparing-for-spring-boot-3-0">Preparing for Spring Boot 3.0</a></p>
<ul>
<li><h4 id="dependencies--dependency를-미리-선택하여-프로젝트-빌드내용에-포함시켜줍니다">Dependencies : dependency를 미리 선택하여 프로젝트 빌드내용에 포함시켜줍니다.</h4>
Spring Web(필수) : Spring Web MVC 뿐만 아니라 RESTful API 서버를 구성하는데 필수인 항목으로
WAS로써 Apache Tomcat이 내장되어 있습니다
Lombok(필수) : 어노테이션 기반으로 기계적으로 작성해야하는 코드들을 컴파일 시점에 생성해준다(!!)
대표적으로 getter, setter, constructor 등이 있습니다. (이거 안쓰면 엄청 귀찮아지니 필수로 씁시다!)
MySQL Driver : RDB인 MySQL의 JDBC Driver를 위해 추가했습니다
본인이 사용할 DB에 맞게 선택하면 됩니다
Spring Data JPA(필수) : JPA는 Java Persistence API라고 하는데 자바 ORM기술의 토대를 이루는 기술 명세라고 합니다.
이번 프로젝트에서 구조가 간단한 테이블들에 적용해가며 학습해볼 예정입니다
MyBatis Framework : SQL에 대한 boilerplate를 제거하고 소스 코드와 SQL을 분리하기 위해 사용했습니다
JPA보다는 MyBtis가 더 익숙하기도 하고 복잡한 SQL과 동적쿼리를 이용하기 위해 추가했습니다</br>

</li>
</ul>
<p>모든 세팅이 완료되었다면 하단의 GENERATE를 눌러 다운로드를 진행합니다
<img src="https://velog.velcdn.com/images/little-chicken/post/32097342-a00f-4429-ac35-5685143fe603/image.png" alt="">
압축을 푸니 위와 같은 파일들이 보이네요
IntelliJ로 프로젝트를 Open 해봅시다
<img src="https://velog.velcdn.com/images/little-chicken/post/1910740b-b7ce-473e-aca1-21bb63b656c6/image.png" alt="">
네. Spring Boot Application을 실행하기 위한 main함수와 
위에서 선택한 Dependencies에 대한 내용이 build.gradle에 작성된게 보이네요!
한번 실행해볼까요?
<img src="https://velog.velcdn.com/images/little-chicken/post/73620f48-13b5-40e9-9557-efbb42200b44/image.png" alt="">
Data Source에 대한 정보가 존재하지 않아 어플리케이션 실행에 실패한 모양이네요
다음 포스팅에서는 Local에 DB를 설치하고 어플리케이션 설정을 통해 Data Source 작성을 진행해보겠습니다</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Java, macOS] Homebrew를 통해 JDK 설치하기]]></title>
            <link>https://velog.io/@little-chicken/Java-macOS%EC%97%90-Homebrew%EB%A5%BC-%ED%86%B5%ED%95%B4-JDK-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@little-chicken/Java-macOS%EC%97%90-Homebrew%EB%A5%BC-%ED%86%B5%ED%95%B4-JDK-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0</guid>
            <pubDate>Sun, 01 Sep 2024 07:18:24 GMT</pubDate>
            <description><![CDATA[<p>Device : MacBook Pro M3 (Apple Silicon)
OS : macOS Sonoma 14.5
&amp;nbsp</p>
<h2 id="0-homebrew란">0. Homebrew란?</h2>
<blockquote>
<p>&amp;nbspHomebrew(홈브루)는 Mac OS 용 패키지 관리자로, 단순한 명령어만으로 소프트웨어 패키지를 쉽게 설치, 업데이트 및 관리할 수 있습니다. 패키지 설치를 위한 명령 인터페이스를 제공하며, 패키지 간 종속성을 관리하여 호환성 문제에 대한 걱정 없이 다양한 소프트웨어를 쉽게 설치하고 사용할 수 있습니다.</p>
</blockquote>
<h4 id="홈브루에-대한-설치-방법은-공식-페이지에-상세히-나와-있으니-링크를-참조하시기-바랍니다">홈브루에 대한 설치 방법은 공식 페이지에 상세히 나와 있으니 링크를 참조하시기 바랍니다.</h4>
<p><a href="https://brew.sh/ko/">https://brew.sh/ko/</a></p>
<h2 id="1-jdk-설치-🛠️">1. JDK 설치 🛠️</h2>
<h4 id="우선-여타-패키지-관리자와-동일하게-업데이트-하는-과정을-진행합니다">우선 여타 패키지 관리자와 동일하게 업데이트 하는 과정을 진행합니다</h4>
<pre><code>brew update</code></pre><p>&amp;nbsp
↓↓↓↓</p>
<p><img src="https://velog.velcdn.com/images/little-chicken/post/1dacdc22-056c-411d-9d1b-c2649bc87778/image.png" alt=""></p>
<h4 id="정상적으로-업데이트-기능이-동작한-것으로-보입니다">정상적으로 업데이트 기능이 동작한 것으로 보입니다</h4>
<h4 id="jdk를-검색해보겠습니다">JDK를 검색해보겠습니다</h4>
<pre><code>brew serach jdk</code></pre><p>&amp;nbsp
↓↓↓↓
<img src="https://velog.velcdn.com/images/little-chicken/post/7e711327-7660-4e12-9f1e-e7163c7821cd/image.png" alt=""></p>
<h4 id="간단한-명령어-한줄로-검색이-가능하네요">간단한 명령어 한줄로 검색이 가능하네요</h4>
<h4 id="저는-spring-boot-30-이후-버전을-사용할-것이므로-openjdk17을-설치해보겠습니다">저는 Spring Boot 3.0 이후 버전을 사용할 것이므로 OpenJDK17을 설치해보겠습니다</h4>
<pre><code>brew instal openjdk@17</code></pre><p><img src="https://velog.velcdn.com/images/little-chicken/post/545b4146-f852-4ba6-9b2e-bdf4807c9dac/image.png" alt=""></p>
<h4 id="nbsp정말-단순한-커맨드-몇줄만으로-jdk-설치가-되었습니다">&amp;nbsp정말 단순한 커맨드 몇줄만으로 JDK 설치가 되었습니다</h4>
<h4 id="추가로-환경변수나-컴파일러-관련-내용도-가이드도-해주네요">추가로 환경변수나 컴파일러 관련 내용도 가이드도 해주네요</h4>
<h2 id="2-환경변수-설정🔧">2. 환경변수 설정🔧</h2>
<h4 id="우선-homebrew에서-안내한대로-다음-명령어를-실행한다">우선 Homebrew에서 안내한대로 다음 명령어를 실행한다</h4>
<pre><code>  echo &#39;export PATH=&quot;/opt/homebrew/opt/openjdk@17/bin:$PATH&quot;&#39; &gt;&gt; ~/.zshrc</code></pre><h4 id="이후-java_home-환경변수를-설정하기-위해-다음-명령어를-실행한다">이후 JAVA_HOME 환경변수를 설정하기 위해 다음 명령어를 실행한다</h4>
<pre><code>echo &#39;export JAVA_HOME=&quot;/opt/homebrew/opt/openjdk@17&quot;&#39; &gt;&gt; ~/.zshrc</code></pre><h4 id="그리고-현재-열려있는-세션에-해당-내용을-반영하기-위해-다음-명령어를-차례대로-실행했다">그리고 현재 열려있는 세션에 해당 내용을 반영하기 위해 다음 명령어를 차례대로 실행했다</h4>
<pre><code>source ~/.zshrc
java -version</code></pre><h4 id="설치한-jdk의-버전이-정상적으로-출력된다면-성공">설치한 JDK의 버전이 정상적으로 출력된다면 성공!</h4>
<p>&amp;nbsp
&amp;nbsp
다음 포스팅은 Spring Boot 프로젝트 생성 방법에 대해 다룰 예정입니다</p>
]]></description>
        </item>
    </channel>
</rss>