한규태

한규태님의 아티클

한규태

한규태

PARD, 잘하고 있는걸까?

안녕하세요, 이번 파드 서버 파트 5기 ‘말하는 감자’ 한규태입니다.

감자.png

아무래도! 이번 기수 PARD 전반전이 끝나가면서 회고록을 적어볼 시간이 된 것 같아서 이렇게 글을 쓰게 되었습니다.

제가 이번 글에서 이야기하고 싶은 주제는 크게 두 가지입니다.

하나는 지금까지 얻은 것, 그리고 다른 하나는 앞으로 얻어가고 싶은 것입니다.

✨ 시작은 늘 우연처럼, 그러나 최고의 선택이 되어버렸다

사실 저는 개발 경험이 전혀 없는 상태에서 PARD에 지원하게 되었습니다.

PARD에서 저를 받아줄지도 몰랐고, 이번 학기에 PARD에 지원하게 될 줄도 몰랐습니다.

다행히도 저를 좋게 봐주셔서, 이 자리까지 나아오게 된 것 같습니다.

저는 군 복학 이후 코딩을 해볼 기회도 없었고,

홀로 코딩을 할 자신도 없는 상태였습니다. 완전 멍텅구리, 말 그대로 ‘말하는 감자’였죠.

말하는 감자라구요.png그러다 우연히 PARD라는 동아리를 알게 되었고,

리크루팅 마지막 날까지 고민하다가 결국 지원서를 제출하게 되었습니다.

결론부터 말하자면, 이번 학기의 최고의 선택이었다고 말할 수 있어요.

내가 PARD에서 얻은 것들

1. 사람

이번 학기에 정말 많은 새로운 사람들을 만났습니다.

지난 학기 복학 후, 사실 캠퍼스에서 아는 사람이 많지 않았어요.

길 가다 마주쳐서 인사할 일도 거의 없었고요.

그런데 이번 학기에는 강의실에서 기숙사까지 가는 길에,

최소 5번은 인사를 하게 됩니다.

그중 절반 이상은 바로 PARD에서 만난 인연들이죠.

그리고 이건 단순히 아는 사람이 늘어난 게 아니라,

함께 고민하고 나눌 수 있는 사람들이 생겼다는 점에서 더 특별합니다.

막막함이 느껴지는 순간에

이제는 의지할 곳이 있고, 함께할 ‘지원군’이 생긴 것 같은 든든함이 느껴집니다.

2. 안정감

PARD가 추구하는 분위기 속에서 심리적 안정감을 많이 얻었습니다.

실패해도 괜찮고, 몰라도 괜찮다는 분위기 덕분에

자신감 있게 질문하고, 실수해보는 경험을 하고 있어요.

중요한 건 그 실수들을 발판 삼아 성장하고 있다는 것입니다.

자신감이 솟구친다.png

3. 개발 지식

사실 저는 개발을 해본 적도 없고,

애플리케이션이라는 단어조차 낯선 상태에서 PARD에 들어오게 되었어요.

하지만 지금은 Spring Boot라는 기술을 배우고 있고,

아직은 이걸로 뭘 제대로 만들어내지는 못하지만,

조금씩 그 실마리를 꿰어 나가고 있다는 느낌이 들어요.

한 주 한 주 뿌듯하게 배우고 있습니다.

나는 아직도 배고프다 – 앞으로 얻어가야 할 것들

1. 결과물

‘칼을 뽑았으면 무라도 썰어야지!’라는 말처럼,

PARD에 왔으면 숏커톤, 롱커톤은 꼭 해봐야지!라는 생각이 들어요.

말은 ‘결과물’이라고 했지만,

그 결과물을 만들어내는 과정 자체에서 배우는 게 훨씬 많을 거라 기대하고 있습니다.

(물론, 얼마나 더 힘들지 걱정도 되긴 해요...)

2. 앞으로의 행보

PARD가 끝나면 어쩌면 저는 어엿한 백엔드 개발자가 되어 있을지도 모르죠.

적어도, 개발할 때 1인분은 해내는 개발자가 되어 있지 않을까요?

아직은 많이 부족하지만,

이 시간 동안 기본이 되는 하나의 주축을 세웠다고 생각해요.

그 기반 위에 차곡차곡 쌓아가면,

앞으로 저의 영역을 더 넓히는 데 큰 도움이 될 거라 믿습니다.

마무리하며

아직도 가끔은 스스로에게 묻습니다.

“잘하고 있는 걸까?”라는 질문은 아직도 계속되고 있어요.

하지만 지금은 이렇게 말해볼 수 있을 것 같아요.

"적어도 그 질문을 던지고 있는 나는, 계속해서 나아가고 있다."

완벽감자.png

이번 회고는 여기까지입니다.

앞으로의 후반전도, 끝까지 최선을 다해 달려보겠습니다!

부족한 글이지만 읽어주셔서 감자합니다!

감자함니다.png

5
1
한규태

한규태

오라클 DB 해킹?? 무슨 일이야??

내용 요약:

첫 번째 사건은 지난 3월에 오라클 DB 서버가 해킹당한 사건이야. 해커 'rose87168'이 오라클 DB 서버를 해킹해서 개인 기록 정보들을 탈취했다고 주장했지. 처음엔 오라클이 해킹 사실을 부인했었는데, 해커가 해당 사이트에 파일을 생성할 수 있는 권한이 있다는 게 확인되면서 결국 정보가 탈취됐다는 게 드러났어. FBI가 이 사건을 조사 중이고, 해커는 금전적인 요구를 하고 있다는 상황이야.

image.png

해킹을 했다고 주장하는 rose87168 [자료: 블리핑컴퓨터]


두 번째 사건은 4월 초에 발생한 건데, 레거시 시스템에서 고객의 로그인 정보가 유출됐다는 거야. 해킹으로 사용자 이름, 패스키, 암호화된 비밀번호 등이 유출됐고, 해커는 금전적 요구를 하며 협박을 하고 있는 중이라고 해.

연속된 오라클 해킹 사건으로 인해 주가가 하락했을 뿐만 아니라, 고객들의 신뢰도 크게 떨어졌어.

이 사건들을 보면서 우리가 모든 부분에서 완벽할 순 없지만, 우리가 작성한 코드와 서버 같은 부분은 계속 점검하고 업데이트해야 한다는 점을 다시 한 번 상기시켜준 것 같아.

우리 모두 안전한 코딩 하자!!

2
0
한규태

한규태

MVC. 야, 너두 할 수 있어

image.png

우선! MVC가 무엇이냐?

MVC는 springboot의 구조로 유지 보수와 확장 그리고 또한 협업을 용이하게 해주는 구조야.

계층에는 Client, Controller, Service, Repository, DB가 있고 데이저 전달을 위해 DTO, Entity를 사용해.

image.png

이런 방식으로 구조가 이루어져 있어.

그렇다면 각 계층은 어떤 역학을 하는가?

MVC 흐름:

  1. Client

    말 그대로 유저에서 정보를 주고 받으며 컨트롤러와 상호작용하는 역할을 해

  2. Controller

    컨트롤러는 클라이언트에게서 받은 요청을 기반으로 어떤 처리를 할지 알려주는 역할을 해

    get, post, put, patch, and delete 등의 요청들을 구분하여서 정보를 넘겨주지

    • 예시: @GetMapping("/users/{id}")와 같은 요청을 처리하는 메서드.

  3. Service

    실제로 동작(로직)을 처리하는 부분이야. 사용자 정보 업데이트, 결제 처리 등과 같은 로직을 처리해.

  4. Repository

    리포지토리는 데이터베이스와의 상호작용을 담당해줘. DB에 들어가고 나오는 정보들을 전처리 혹은 후처리 해주는 역할을 해

  5. DB

    우리(애플리케이션)가 필요한 데이터들을 저장하는 저장하는 공간이야.

    • 예시: MySQL, PostgreSQL, MongoDB 등.

  6. DTO (Data Transfer Object)

    DTO는 데이터 전송 객체로, 데이터를 한 계층에서 다른 계층으로 전송할 때 사용하게 돼.

    DTO는 entity와 달리 흔히 장바구니 라고 불리는 역할을 하는데, 원하는 데이터만 골라서 한 번에 전송할 수 있도록 도와줘.

  7. Entity (엔티티)

    Entity는 데이터베이스와 밀접하게 연관이 되어 있어. Entity에 작성된 객체 정보들이 데이터베이스에 만들어진다고 생각하면 돼.

    • ORM(Object-Relational Mapping)을 통해 DB와의 상호작용을 담당해.

다음엔 코드를 보면서 MVC 구조로 CRUD를 구현한 코드를 확인해 보도록 하자.

2
0
한규태

한규태

JPA? 그게 뭔데?

처음에 나는 JPA가 Spring에서 만든 줄 알았어.
그런데 아니더라고?

사실 JPA는 Java 기술 표준을 정의하는 공식 기구인
JCP(Java Community Process)라는 단체에서 만들었어.


그래서! JPA가 도대체 뭐냐?

그건 바로:

"JPA는 자바 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 표준화한 API입니다"
– 스파르타 블로그

🤨 에? 그게 무슨 말이냐고?


쉽게 설명하자면…

API는 API인데,
자바로 데이터베이스랑 쉽게 소통할 수 있도록 만든 ‘룰북’ 같은 거야.

복잡한 SQL을 직접 쓰지 않고도,
자바 코드로 데이터를 저장하고, 조회하고, 수정할 수 있어.
마치 자바 객체를 다루듯이 말이야.

그리고 JPA는 데이터베이스 종류에 따라 다르게 처리해주는 로직도 갖고 있어서,
MySQL이든 Oracle이든, DB가 바뀌어도 코드 수정을 최소화할 수 있어!


😮 그런데… JPA를 설명할 때 꼭 나오는 게 하나 있어.

바로 ORM이라는 단어야.

왜냐하면 JPA가 ORM 기반으로 동작하기 때문이지!


⚙️ ORM이란?

(여기선 간단하게만 다룰게. 나중에 더 자세히!)

ORM(Object-Relational Mapping)은
객체를 데이터베이스 테이블에 자동으로 매핑해주는 기술이야.

예를 들어 자바 클래스 User를 만들면,
그걸 알아서 user라는 테이블처럼 사용하게 도와주는 거지!


😧 아니 그럼… JPA 말고 ORM 쓰면 되는 거 아니야?

처음엔 나도 그렇게 생각 했었어.

그런데! 중요한 차이가 있더라구.

🧠 ORM은 "이렇게 동작하면 좋겠다"는 개념
🧰 JPA는 "자바에서는 이렇게 쓰자"는 공식 표준 API

그리고! 이 모든 것을 통합하여서 만든 라이브러리가 Hibernate(이)야


🧩 총정리!

  • ORM: 개념 (객체와 데이터베이스를 연결하는 방식)

  • JPA: 자바에서 ORM을 사용할 수 있도록 정리된 표준 API

  • Hibernate: JPA 표준을 실제로 구현한 라이브러리

5
2