본문 바로가기

부트캠프/코드스테이츠 백엔드부트캠프 43기30

[코드스테이츠 백엔드 43기] MainProject 마무리 후기 MainProject 나만의 친환경 - 친환경 생활 실천을 공유하고 공감하는 우리들의 공간 친환경에 관련된 음식점, 카페, 의류 등을 커뮤니티 게시판 형식으로 등록을 하며 사람들한테 알리며 자신만의 게시글 리스트를 관리할 수 있다. 또한 관리자는 도움이 될만한 게시글은 채택이 되어 메인 페이지에 고정이 될 수 있다. 이를 통하여 사용자들은 자신들만 아는 친환경 공간을 공유하고 더욱 실천할 수 있게 된다. 팀명 : 메인플스토리 ( 메인프로젝트스토리) 프로젝트 시작 젭을 이미 3명이 모인 프론트 팀을 우연히 만나게 되었는데 분위기가 너무 밝았으며 대화 코드가 잘 맞아서 같이하자고 신청하였고 운이 좋게도 그 팀이랑 같이하게 되었다. 그렇게 메인프로젝트가 시작이 되었고 프로젝트를 진행하는데 있어 어떤 부분이 문.. 2023. 6. 3.
[코드스테이츠 백엔드 43기] PreProject 마무리 후기 PreProject 2주 간의 프리프로젝트가 끝이났다. 처음으로 프론트엔드와 백엔드를 구별하여 각각 파트를 나누어 업무를 진행하는게 전공자임에도 처음이기에 많이 낯설었으며 그와 동시에 드디어 개발을 한다는 설렘이 있었다. 신기하게도 프론트 백엔드 모든 인원들이 굉장히 친절하시고 밝으셔서 프로젝트 기획에 있어 큰 어려움은 없었다. 우리 백엔드는 각자의 기능 파트를 나누어 작업을 진행하였고 나는 그 중 답변이랑 시큐리티, OAuth 그리고 내가 팀원들 중 유일한 전공자였기에 팀원들의 어려움을 많이 해결해주려고 노력했었다. 답변 기능 - 답변기능도 간단하게 생각하면 테이블 하나를 추가하면 되지만 대댓글, 대대댓글과 같은 부분까지 생각한다면 테이블을 계속 늘리는건 똑같은 테이블을 계속 생성하게되는 낭비가 발생하.. 2023. 4. 28.
코드스테이츠 백엔드 부트캠프 43기 (개인프로젝트 - todoList) 모든 과정이 끝이 나고 간단한 개인프로젝트 시간이 찾아왔다. 기능 요구사항은 매우 단간하다. text 를 저장, 읽고, 수정, 삭제 (CRUD) 과정만 하면 된다. 먼저 프론트엔드부분이 제공되는 사이트에서 나의 로컬주소로 요청을 하여 데이터를 출력하는 형식으로 진행이 되었다. 이런식으로 사이틑 안에서 나의 로컬주소를 호출하는 과정에서 CORS 정책 - 외부 사이트에 접근하는 것을 막는 정책 이러한 접근을 해제하기 위하여 사용하는 Controller 에 @CrossOrigin 에너테이션을 설정해주면 CORS 해제가능. 다음으로 가장먼저 데이터를 받아와서 저장하는 POST 요청을 처리해 보았다. @RequestBody - json 형식으로 넘어올때 데이터를 정해놓은 body 형식으로 받는다. @PathVar.. 2023. 4. 7.
코드스테이츠 백엔드 부트캠프 43기 (AWS - Cloud) 클라우드 대표적인 클라우드 컴퓨팅을 제공하는 회사 AWS MS Azure (마이크로소프트) GCP (구글) 우리가 만든 웹페이지를 외부에서도 보려면 언제든지 접근이 되어야 하기때문에 서버가 계속 가동이 되어야 된다. 그래서 나의 컴퓨터를 서버로 만들거나 외부 서버를 이용하여 배포를 하게 된다. 그래서 우리는 외부서버인 Amazon Web Service 의 클라우드 서비스를 이용하여 배포를 해보는 학습을 하였다. AWS는 다양한 기능을 제공하고 있으며 우리는 그 중 3Tier-Architecture 배포 전략을 사용하여 배포를 하였다. 3Tier 란 클라이언트(S3), 서버(EC2) , 데이터베이스(RDS) 로 이루어져 있다. S3는 비정형 데이터(html 파일, 사진파일, 문서)를 저장할 수 있다. 그래.. 2023. 3. 30.
[Section 3] 회고 ✔️ KEEP 규칙적인 생활 ✔️ Problem 필기시험을 보고 많이 나태해졌다. 공부하는데 시간이 부족하다고 느껴 운동을 잠시 그만두게 되었는데 운동을 하지 않는 시간에 더 공부를 하는 게 아니라 쉬게 되는 결과가 나왔다… ✔️ 회고 벌써 Section3가 끝나게 되다니 신기하다. 항상 회고할 때면 부족했던 부분들이 많이 떠오르게 된다. 필기준비를 한다는 핑계로 알고리즘 공부를 잠시 미루었고 유어 클래스 복습 또한 진행하지 못하였다. 심지어 열심히 다니던 운동도 포기하였다!!! 모든 것을 이룰 수는 없기에 중요도가 상대적으로 낮은 것은 포기하는 게 맞지만 뭔가 찝찝함이 맴돈다. 그래서 다른 것을 포기하고 필기준비를 정말 열심히 준비했느냐? 그것도 아닌 것 같기에 찝찝함이 맴도는 것 같다. 그래서 일단은.. 2023. 3. 13.
SpringBoot-Mysql 연동 1. build.gradle 에 의존성 추가해주기 1-1 implementation 'mysql:mysql-connector-java' 1-2 implementation 'org.springframework.boot:spring-boot-starter-data-jpa' 2. yml 파일 경로 설정 - 기본 설정값으로 application.yml 파일로 되어있음 따로 다른 yml 파일로 설정하려면 기본 경로를 바꿔줘야 한다. - 망치옆에 있는 프로젝트 클릭 - Edit Configurations... 클릭 - ( --spring.profiles.active=설정이름) 을 입력하면 경로 설정이 완료된다. 3. 서버 환경 정보들을 설정하기 위하여 yml 파일 설정 Mysql을 설치하였다면 포트번호를 3306으.. 2023. 3. 10.
코드스테이츠 백엔드 부트캠프 43기 (SpringMVC 테스팅 - JUnit) 엄청 오랜만에 회고를 작성한다. 그 이유는 ... 공기업 필기 시험이 3/3. 3/4 일에 잡혀있어서 NCS, 전공공부 하기에 바빴다...그래서 블로깅은 잠시 킵 해두었다. 아니 점점 갈 수록 공부를 안하고 복습을 안하게 되면 학습 과정을 따라가기 힘든 지경에 와버렸다... 이해가 안간단 말이지 그래서 오늘은 테스트에 하여 학습이 진행되었다. 하나의 작업만 테스트하기 위하여 매번 수작업으로 서버를 열고 http 요청을 보내 확인하는 작업은 매우 비효율적이다. 그래서 Spring에서는 계층별로 테스트 할 수 있는 테스트 기법을 지원하고 있다. 단위테스트, 슬라이스테스트, Mockito 단위테스트 - 하나의 계층 안에있는 기능 또는 클래스 내부에 있는 메서드와 같은 가장 작은 단위의 테스트를 의미한다. 슬라.. 2023. 3. 10.
코드스테이츠 백엔드 부트캠프 43기 (SpringMVC - Mapper - 서비스 계층) 서비스 계층, DTO -> Entity, Mapper 지난 시간에는 HTTP 메시지의 내용을 API 계층에서 DTO 객체로 변환하는 내용까지 하였다. 오늘 학습한 내용은 1. 서비스 계층이랑 API 계층 연동 -> DI 방식으로 2. DTO객체를 Entity 객체로 매핑 -> Mapper 를 이용 1. 과정을 수행하기 위하여 API 계층에서 서비스 계층의 클래스를 생성하는 것이 아닌 스프링부트에서 지원하는 의존성 주입을 통하여 자동 주입을 해 주었다. 의존성 주입을 위해서 주입할 서비스 계층의 클래스를 @Service 어노테이션을 설정하여 Bean으로 설정해 주었다. 이제 API 계층인 컨트롤러 클래스에서는 CoffeeService 클래스를 직접 생성하는 것이 아닌 주입을 통하여 느슨해진 결합이 완성 되.. 2023. 2. 15.
코드스테이츠 백엔드 부트캠프 43기 (SpringMVC - DTO - API 계층) DTO, 유효성 검증 dto 를 설명하기에 앞서 클라이언트에서 서버로 데이터 전달 방식에는 2가지 방식 이있다. 1.쿼리 파리미터를 통한 데이터 전송 방식 url 을 살펴보면 주렁주렁 정보들이 달려있는 방식이 쿼리 파라미터를 통한 데이터 전송 방식 GET 요청을 보낼때 사용된다. 2. 메시지 바디를 통한 데이터 전송 방식 (JSON 형식) JSON : 서버와의 통신을 할 때 DATA 교환 형식 -> 파일포맷 객체의 정보를 수정, 입력 등 정보를 다루어야 할 때 주로 사용 POST, PUT, PATCH 요청을 보낼 때 사용 클라이언트 측에서 보낸 데이터를 서버에서 받는 과정은 크게 API 계층(프레젠테이션 계층) = 클라이언트 요청 및 응답 처리 비지니스 계층 = 비지니스 로직 처리, 트랜잭션 관리 데이터.. 2023. 2. 14.