2024/03 45

[섹션 1]객체 지향 설계와 스프링

본 게시물은 김영한 선생님의 강의를 학습하며 작성하였습니다. EJB 엔터티빈 → 하이버네이트 → JPA 현재 JPA가 Java ORM 시장을 다 잡아먹고 있다! 하이버네이트는 실무 개발자들이 개발하다보니 편하게 하고싶어서 개발한 것인데 오픈소스의 단점(무언가에 특화된..)을 정제해서 JPA를 만들게 된 것이다!! 🌱스프링 프레임워크 핵심 기술: 스프링 DI 컨테이너, AOP, 이벤트, 기타 웹 기술: 스프링 MVC, 스프링 WebFlux 데이터 접근 기술: 트랜잭션, JDBC, ORM지원, XML 지원 기술 통합: 캐시, 이메일, 원격접근, 스케줄링 테스트: 스프링 기반 테스트 지원 언어: 코틀린, 그루비 최근에는 스프링 부트를 통해서 스프링 프레임워크의 기술들을 편리하게 사용 스프링 부트 스프링을 편리..

Backend/Spring 2024.03.18

Precommit Test

원래 글: https://velog.io/@stopmin/Precommit-Test 참고 관련 내용은 저번에 이미 정리해뒀다. 참고자료 이전 정리보다 조금 더 알게된 점은, 아래와 같다. 이 그림에서 딱 3단계로 진행되면 된다고 생각한다는 점이다. 수정 내역을 가져오고 내가 수정한 부분을 커밋하는 것이다. 이걸 upstream에서 바로 해도 되지만 origin을 통해서 하는게 나중에 문제가 생겼을 때 해결하기 좋다는 점이다. precommit test 홀리 몰리 뭐야 원래 안됐었는데 됐다!! 저기 근데 unstaged된거 있다고 하긴 하는데 잘못 건들면 안될 것 같아서 말았다. dev branch에 pull했다. 생각해보니깐 git add . 을 안했다. 그래서 다시 커밋했다. pull request d..

Backend/FastAPI 2024.03.18

AID backend project 추가 정리

원래 글: https://velog.io/@stopmin/AID-backend-project 이번 프로젝트를 진행하면서 배웠던 점을 총합해서 정리한 게시물입니다. 이때까지 정리한 글 개발환경 설정 + 패키지 정리 fork한 repo를 origin에 push Lock 파일 & pre-commit FastAPI Pytest & Github action & Docker CloneCoding (CRUD, ToDO-list) DockerCompose & MongoDB Precommit Test CRUD vs AID_Web project SQLAlchemy 1. 개발환경 설정 + 패키지 정리 Pyenv: 다양한 버전의 파이썬을 관리하는데 사용되었다. Pipenv: 가상환경을 사용하기 위해 사용되었다. 이때 pipf..

Backend/FastAPI 2024.03.18

DockerCompose & MongoDB

원래 글: https://velog.io/@stopmin/DockerCompose-MongoDB 🤔 Docker Compose란 docker compose는 여러 개의 docker container를 모아서 관리하기 위한 툴이다. 웹 서비스는 일반적으로 프론트엔드 서버, 벡엔드 서버, 데이터베이스 서버로 구성되기 때문에 각 서버를 docker container로 연결하여 동작시키고 docker compose를 사용하여 해당 컨테이너들을 관리하는 것이다. 사용 방법 각각의 컨테이너의 Dockerfile를 작성한다(기존에 있는 이미지를 사용하는 경우는 불필요). docker-compose.yml를 작성하고, 각각 독립된 컨테이너의 실행 정의를 한다(경우에 따라는 구축 정의도 포함). "docker-compo..

Backend/FastAPI 2024.03.18

SQLAlchemy

원래 글: https://velog.io/@stopmin/SQLAlchemy ✏️ 정리 계기 저번에 CRUD,TODO 클론코딩하고 쓴 게시물에 보면 계속 import sqlalchemy하던데 저게 정확히 무슨 기능을 하는지 궁금했다. 그런데 당장에 정리하기에는 좀 버거움이 있고, 내용이 상당히 많은지라 따로 정리하면 좋을 것 같아서 이렇게 따로 정리하길 다짐했고 더 늦기 전에 지금 해둬야겠다고 생각했다! 🤔 ORM이 무엇인가? 이번 내용이 방대하게 느껴졌던 이유는 먼저 ORM이 무엇인지에 관해 알아야 했기 때문이다. ORM(Object Relational Mapping)이라 함은, 객체-관계 매핑이다. 객체 관계 mapping? 데이터베이스 내의 리소스(테이블)들을 객체화하여, 각 DBMS(MySQL, ..

Backend/FastAPI 2024.03.18

[FastAPI] CloneCoding (CRUD, ToDO-list)

https://velog.io/@stopmin/FastAPI-CloneCoding-updatedelete 목표 이번에 나온 미션은 FastAPI를 활용해서 to-do페이지를 만드는 것이었고, 학습의 용이성을 위해서 클론 코딩을 통해서 학습 방법을 제안해주셔서 제시해준 유튜브 링크를 통해 학습을 하는게 목표였다. 😵 매우 큰 실수를 하였다 보내주신 유튜브 계정에 많은 자료들이 있길래 구경을 하다가보니 헷갈려서 to-do가 아니라 CRUD를 만들어버렸다. 물론 이걸 나중에 알아채고 급하게 to-do도 해보았고.. 결국에 어쩌면 잘못 확인한 일이 되려 이익을 준 것 같기도 하다. 왜냐하면, CRUD페이지는 곧 Create, Read, Update and Delete기능을 구현하는 페이지로 어차피 to-do페이..

Backend/FastAPI 2024.03.18

Pytest & Github action & Docker

원래 글: https://velog.io/@stopmin/Pytest-Github-action Pytest 🤔 PYTEST 현재 어떠한 platform에서 작동하고 있고, 어떤 에러가 발생했는지 그리고 마지막에 요약을 통해 총 몇 개의 테스트가 통과(pass), 실패(fail)했는 지와 함께 총 테스트 시간을 알려준다. "pytest is a mature full-featured Python testing tool that helps you write better programs." Test Driven Development 테스트 주도 개발이라고 한다. 반복 테스트를 이용한 소프트웨어 방법론으로 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다. 최근 이러한 ..

Backend/FastAPI 2024.03.18

개발환경 설정 + 패키지 정리

원래 글: https://velog.io/@stopmin/%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%ED%8C%A8%ED%82%A4%EC%A7%80 개발 환경 Python 가상환경을 쓰면 될 것 같은데(?) 그냥 하는 김에 파이썬 버전 업그레이드 하려고 하는데 터미널에서 permission Denied오류가 떠서 나랑 비슷한 일을 겪은 분이 정리한 글을 보고 해결했다. 그럼에도 계속 계속 안돼서 결국 version 폴더 보니깐 개판이라 정리하니깐 해결이 얼추 됐다. pyenv 다양한 버전의 파이썬을 관리하는 도구이다. ➡️ 프로젝트 하는데 편함 pip 기반으로 동작하지만, 프로젝트 별로 격리된 가상환경과 프로젝트 단위의 패키지 관리 매커니즘을 제공한다. pipenv 가상 환경에서..

Backend/FastAPI 2024.03.18

fork한 repo를 origin에 push

저번에 혼자서 공부했던 git 사용법 가지고는 정말 아~무것도 할 수 없었음을 느끼는 중이다 저거가지고는 혼자서 프로젝트 한거 커밋하고 푸시하는 것 밖에 못함을.. 너무 늦게서야 깨닫게 되었다. fork한 repo에 내가 수정한 파일을 올리는게 굉장히 어지러웠다. 왜냐하면, 내가 fork한 이후 다른 분이 수정한 파일을 수정한다..라는 점이 굉장히 이대로 push하면 대참사가 일어날 것 같은.. 느낌을 주었기 때문이다. 그런데 어떻게 해야하지 어떻게 해야하지 고민을 해봐도 뭔가 내가 뭘 제대로 모르는지 알 수가 없었다. 아는게 있어야 내가 뭘 지금 원하고 근데 그 방법을 모르니 구글링을 해서 어찌저찌 답을 찾아가는데, 정말 뭐라고 검색해야 할 지 감이 오지 않았다. 아 정말 공부를 계속 열심히 해보면서 ..

Git 2024.03.18