블로그
전체 3#카테고리
- 웹 개발
#태그
- 미션
- 발자국
- 백엔드
2024. 03. 10.
0
[인프런 워밍업클럽 0기 BE] 세 번째 발자국 (3주차 회고)
✔3주차 커리큘럼✔3주차 학습 요약10일차(33-36강)기존 코드를 더 객체지향적으로 만들기 위해 JPA를 활용해 객체로 연관관계를 맺는 방법과 이것의 효과, 그리고 다양한 옵션에 대해 알아보았다. 또 개발에 있어 연관관계를 사용하는 것과 사용하지 않는 것의 차이점에 대해서도 학습할 수 있었다.11일차(37-42강)배포의 의미와 이를 위해 준비해야 하는 것을 알아보고 또 스프링 서버를 실행 시 DB 등의 설정을 코드를 변경하지 않고 제어할 수 있는 profile에 대해 학습하고 적용해보았다. git과 github이 무엇인지와 기초 사용법에 대해 알아보고 프로젝트를 저장소에 push하는 것을 실습하였다. AWS에서 컴퓨터를 빌리는 이유를 알아보고 EC2를 직접 생성해보았다.12일차(43-48강)생성한 EC2에 접속해보고 리눅스 명령어를 이용해 접속한 서버에 배포하기 위한 프로그램(git, java, mysql)들을 설치하고 필요한 설정을 해주었다. github저장소로부터 프로젝트를 서버로 clone받고 빌드와 실행 과정을 거쳐서 ec2주소로 접속해 실제 애플리케이션에 접속해보았다. foreground와 backfound에 대해 알아보고 ec2접속을 종료해도 서버가 종료되지 않도록 background에 서버를 띄우는 것에 대해 학습하였다. 도메인 이름을 이용하여 IP 대신 이름으로 접속하는 법에 대해서도 알아보았다.13일차(49-52강)build.gradle파일안에 있는 구성요소들의 의미와 역할에 대해 알아보고 Spring과 Spring boot의 차이에 대해 이론적인 내용을 배울 수 있었다. 또 application.yml과 propertis에 대해 살펴보고, 편리한 코드의 작성을 도와주는 lombok라이브러리에 대해 알아보고 기존 코드를 lombok을 이용해 리팩토링도 해보았다. 기존 프로젝트에서 java와 Springboot의 버전을 높이는 방법에 대해서도 학습할 수 있었다.그리고 추가적으로 어떤 공부를 하면 좋을지에 대해 서버 프레임워크, 기반 실무 스킬 등에 대한 키워드들을 알려주시면서 강의가 마무리 되었다.14일차(마무리 및 꿀팁 영상)공부 방향성에 대한 조언과 AWS에서 생성했던 EC2를 종료하는 법과 비용을 계산하는 방법에 대해 알아보았다. MyBatis와 DB접근 기술의 차이점들에 대해 배울 수 있었고, 스프링 부트의 정적 파일 처리에 대해서도 알아보았다.✔회고자격증 시험과 겹쳐서 스터디 기간동안은 미션 프로젝트를 1단계까지 밖에 진행 못한 것이 아쉬웠지만, 그래도 완주 조건을 만족하여 뿌듯하다. 자격증 시험이 종료되었으니 나머지 단계도 순차적으로 진행해볼 예정이다.보통 강의를 들으면 끝까지 완강해서 듣는 것이 버겁게 느껴질 때가 있는데 강사님이 내용을 알차고 재미있게, 부담되지 않게 잘 준비해주셔서 그런지 강의 한 강씩 듣는 것이 즐거웠고 강의를 들으며 이전에 알았던 지식은 정리가 되고, 새롭게 알게 된 것과 더 알고 싶은 것들이 무엇인지 정리가 되는 느낌이었다. 강의자료도 정리를 정말 잘 해주셔서 강의에 더 잘 집중할 수 있었던 것 같다.부트캠프나 다른 강의를 들을 때는 실습 과정을 따라가기에 급급하게 공부를 진행하기도 했던 것 같은데 서버부터 배포까지 진행하면서 한 가지 과정을 끝까지 완주해보며 공부가 많이 되었던 것 같고, 각 단계별로 설명을 해주셔서 이론과 실습을 함께 곁들여(?) 이해해가며 공부할 수 있어 좋았던 것 같다.강의를 들으며 실습하고, 미션을 해나가는 시간이 즐거웠고 3주의 시간이 빠르게 지나간 듯하다. 강의가 끝나서 아쉽지만, 앞으로 해야할 공부의 방향도 다시 다잡으며 새로운 시작을 해야겠다 😊 워밍업을 통해 이 강의를 만나게 되어 정말 기쁘다. 질문도 잘 받아주시고 강의도 라이브도 열정적으로 해주시는 강사님 정말 감사합니다.
2024. 03. 03.
0
[인프런 워밍업클럽 0기 BE] 두 번째 발자국 (2주차 회고)
✔2주차 커리큘럼✔2주차 학습 요약6일차Controller를 인스턴스화하지 않고도 메서드를 호출할 수 있었던 이유, JdbcTemplate설정을 해주지 않아도 사용할 수 있었던 이유인 @RestController에 대해 학습하였다. 이것이 UserController를 API의 진입 지점으로 만들어주는 것 뿐 아닌, 이 클래스를 스프링 빈으로 등록시켜준다. 서버 시작 시 스프링 컨테이너를 만들고 이 컨테이너에 스프링 빈을 넣으며 인스턴스화도 함께 이뤄진다는 것에 대해 배우고, 스프링 빈을 다루는 여러 방법에 대해 학습하였다. 6일차 미션 - API 역할 분리7일차문자열 SQL의 한계에 대해 알아보며 이를 극복하기 위한 JPA의 등장과 Hibernate,Spring Data JPA 등의 이론적 내용을 학습하였다. 그리고 실제 Jdbc를 이용해 SQL문을 직접 작성하였던 코드를 리팩토링하여 Spring Data JPA를 이용해 편리하게 db를 다룰 수 있는 방법을 학습하였다. JPA를 이용해 데이터를 Create, Read, Update, Delete하는 것을 학습하였다.7일차 미션 - JPA 활용8일차트랜잭션이 무엇인지와 3가지 기본 명령어에 대해 알아보았다. 기존 서비스 코드에 @Transactional을 통해 적용해보고 이것을 선언하였을 시 영속성 컨텍스트라는 것이 어떻게 작용하는지, 영속성 컨텍스트의 4가지 특징이 무엇인지에 대하여 학습하였다. 4가지 중 하나인 변경 감지라는 기능은 기존코드처럼 엔터티를 저장할 때 save() 를 하지 않고도 변경을 감지하여 데이터베이스에 반영할 수 있게 해준다.9일차 지금까지 개발 실습과 이론을 통해 배웠던 모든 개념을 실습하기 위하여 책 등록, 대출, 반납 API를 개발해보는 것을 진행하였다. 데이터베이스 console에서 테이블을 생성하고 이것과 호환되는 객체를 @Entity를 통해 만드는 것부터 필요한 repository, dto, service, controller를 작성하여 API를 개발하였다. repository부분은 학습한 Spring Data JPA를 활용하여 이전 Jdbc코드보다 더욱 편리하게 개발할 수 있었다.✔회고강의를 들으며 개발을 해 나갈수록 하루 하루 성장하는 것이 느껴진다. 트랜잭션이나 영속성 컨텍스트같은 개념도 이전에는 조금 어렵게 느껴졌지만 강의에서 핵심적인 내용을 위주로 쉽게 알려주셔서 이해가 잘되고 기존에 남아있던 지식과 합쳐져 정리가 되는 것 같다.과제7의 경우 JPA를 활용한 코드로 리팩토링하는 것인데 스트림에 대해 더 공부해보고, 이를 이용하면 코드를 더 간결히 리팩토링할 수 있을 것 같다. queryDSL에 대해서도 알아보는 것이 좋다고 강사님이 말씀하셔서 이에 대해서도 공부해보고 싶다.남은 한 주도 기대가 된다 🙂 남은 과제는 미니프로젝트만을 남겨두고 있다.+ 이 인강이 끝나더라도 강사님의 스프링, 백엔드 강의를 더 듣고 싶다...
2024. 02. 25.
0
[인프런 워밍업클럽 0기 BE] 첫 번째 발자국 (1주차 회고)
✔1주차 커리큘럼 ✔1주차 학습 요약1일차스프링 프로젝트를 시작하는 방법과 서버를 만들기 전 네트워크 및 관련된 지식과, API의 진입 지점인 Controller를 통해 GET API를 개발하는 것을 학습하였다.1일차 미션 - Annotation 개념과 특징 / Custom Annotation2일차GET API에 이어 POST API를 학습하고 여러가지 API를 개발해보았다. POST API의 경 쿼리가 아닌 바디(body)를 사용하므로 POSTMAN에서 JSON언어로 데이터를 요청하고 응답 받는 것에 대해서도 학습하였다.2일차 미션 - API 개발하기13일차Database의 필요성에 대해 학습하고 MySQL에서 데이터베이스를 만들어 여러가지 쿼리를 작성해보았다. 메모리에 저장하여 서버가 내려갈 시 데이터가 사라지는 문제점을 JdbcTemplate을 이용하여 데이터를 데이터데이스에 저장하는 방법에 대해 학습하였다.3일차 미션 - 익명클래스와 람다식4일차데이터베이스 테이블에 저장된 데이터를 수정, 삭제하는 PUT API, DELETE API를 개발하는 것에 관해서 학습하였다. 또한 삭제 요청을 할 시 존재하는 유저가 없을 경우 응답으로 200OK가 아닌 500 ERROR 가 발생하도록 에러 처리를 해주었다. 4일차 미션 - API 개발하기2 / 에러 처리 해보기5일차클린코드의 개념과 필요성에 대해 학습하고, 또 기존에 Controller에서 모든 역할을 수행했던 것을 Service, Repository를 생성하여 이를 3개의 역할로 분리하는 과정에 대하여 배우고 기존에 개발한 코드에 대해 리팩토링을 진행하였다.5일차 미션 - Clean Code(클린코드)만들기 (리팩토링) ✔회고강의 소감🧩컴퓨터를 전공하였지만 대학 때는 이론에 비중이 큰 학습을 하였고 스프링은 아예 배운 적이 없고 git, aws 등 실무에 필요한 기술들은 전혀 배울 수 없었다. 백엔드 개발자가 되기로 하고 필요한 기술을 배우기 위해 부트캠프를 수강하였는데 대학 때 안 배운 기술들이 대부분이었다.부트캠프를 수강하며 그리고 인강을 통해 접하였던 서버 지식 및 이론 지식들과 Spring에 관한 내용들이 이번 스터디를 통해 퍼즐이 맞추어지는 느낌이다. 전에는 알지만 제대로 아는 것이 아니었다면, 강사님의 친절한 설명 덕에 이해가 잘 되고 기존에 알고 있던 지식이 정리가 되어 합쳐지는 느낌이었다.. (강사님 감사합니다)한 단계씩 올라갈 때마다 이해하기 쉽게 설명이나 예제 등을 준비해주신게 느껴지고, 호흡이 빠르지 않은 거 같은데 필요한 내용은 다 들어있는 느낌이다. 강의 끝날 때마다도 수강생들을 존중한다고 늘 말씀해주신다 멋지심👍 강의와 미션강의의 분량도 부담되는 수준이 아니고, 오히려 아주 많지 않기 때문에 쫓기듯 하지 않아도 되서 강의와 미션을 부담없이 매일 할 수 있었던 것 같다. 생각보다 분량이 금방 끝날 듯 싶지만 막상 해보면 미션을 하면서 나의 부족한 점이 계속 보이고 생각지 못한 변수가 생기기 때문에 초기에 생각한 시간보다 더 걸리곤 했다.개발을 할 때는 늘 넉넉한 시간을 두고 하는 것이 좋은 것 같다. 그래야 다시 내 코드가 괜찮은지 돌아보게 되고 리팩토링을 거칠 수 있고, 또 모르는 이론적인 내용도 찾아볼 여유가 생긴다. 학습에 대해배우는 큰 줄기에 대해서 잘 학습하고, 직접 코딩을 해보며 많은 연습을 해야겠다고 느꼈다. 수학 문제도 여러 번 풀어야 내 것이 되어 시험에서 문제를 풀어나갈 수 있는 것처럼, 코딩도 같은 내용에 대한 것도 여러 번 연습하여야 내 것이 되는 것 같다.
웹 개발
・
미션
・
발자국
・
백엔드