profile
포트폴리오 수업 & 코딩 멘토링 서비스 카우치코딩입니다.
태그 목록
전체보기 (42)포트폴리오(20)Spring(10)카우치코딩(9)React(7)oAuth(4)Java(4)리액트(4)취업(3)CouchCoding(3)웹개발(3)CI/CD(3)프론트엔드(3)취업준비(3)github(3)Firebase(3)구글 로그인(3)react testing library(2)테스트(2)API(2)배포(2)버전관리(2)TDD(2)JWT(2)모각코(2)github actions(2)면접(2)스프링(2)프로젝트(2)heroku(2)이직(2)oauth2(2)클린코드(2)figma(2)리팩토링(2)메타버스(2)http(2)취뽀(2)frontend(2)git(2)redis(2)포트폴리오 수업(2)kibana(1)elasticsearch(1)개발(1)웹 개발자(1)세션(1)쿠키(1)webflux(1)profile(1)개발자모임(1)django(1)gitflow(1)개발자 포트폴리오(1)구글(1)웹 캐시(1)springMVC(1)MVC(1)hosting(1)PaaS(1)무료수업(1)PostgreSQL(1)모같취(1)튜토리얼(1)프론트엔드 강의(1)properties(1)리액트 강의(1)네트워크(1)디자인(1)비트코인(1)tailwind(1)무료강의(1)모여서각자코딩(1)로그서비스(1)OAuth2.0(1)코드분석(1)Querydsl(1)REST API(1)docker(1)프로토콜(1)DB_설계(1)웹개발자(1)MemCache(1)commit(1)tandem(1)cloud(1)google login(1)네카라쿠배(1)cd(1)개발환경(1)도구(1)(1)좋은코드(1)도지코인(1)sns로그인(1)BooleanExpression(1)CSS(1)CSS Module(1)Sass(1)styled components(1)api설계(1)기획(1)repository(1)clone(1)MSW(1)erd(1)Sprign Security(1)관리(1)개발자(1)qoddi(1)RestClient(1)kafka(1)mock(1)file storage(1)블록체인(1)pull(1)크롤링(1)BE(1)kakao map(1)aws(1)db(1)kotlin(1)cookie(1)Grafana(1)Database(1)postman(1)웹서비스(1)파이어베이스(1)프로젝트관리(1)토이프로젝트(1)모임(1)웹서비스 아키텍처(1)공부(1)4차산업혁명,(1)FE(1)보안(1)redux(1)Frontend test(1)JPA(1)이벤트(1)카페찾기웹사이트(1)유닛테스트(1)도커(1)설계(1)session(1)강의(1)ci(1)slack(1)인증(1)협업프로젝트(1)포트폴리오 제작(1)cleancode(1)sql(1)백엔드(1)조건검색(1)소프트웨어 아키텍처(1)협업도구(1)push(1)풀스택(1)uml(1)framework(1)프레임워크(1)actions(1)이더리움(1)동적쿼리(1)OOP(1)초보 개발자(1)
post-thumbnail

포트폴리오 제작기: 나만의 편의점 찾기 플랫폼 - Fun편log

나만의 편의점 찾기 플랫폼 - Fun편log - Fun편log팀은 프론트엔드 개발자 2명 백엔드 개발자 1명이 팀을 이뤄 11월 15일부터 12월 22일까지 포트폴리오 멘토링 프로젝트를 진행했습니다. 프론트엔드 개발자 두 분은 비전공자 개발자로써 독학으로 html/css, React를 공부하였으나 취업에 쓸만한 근사한 포트폴리오가 없어 지원하셨고, 백엔드 개발자 분은 Windows 개발자로 계시다가 백엔드 개발자로 전향하기 위해 지원하셨습니다. 3명의 멘토(설계, 백엔드, 프론트엔드)의 강의, 설계&코드 리뷰를 받으면서 개발을 진행했습니다. 🏠 Github Fro

2022년 12월 28일
·
1개의 댓글
·
post-thumbnail

[CleanCode] 읽기 좋은 코드로 변경시키기 예제

이번 카우치코딩 수업에서는 학생의 코드를 보고 피드백을 주고 리팩토링을 하는 작업을 진행하였습니다. 그 중 읽기 쉬운 코드를 만들기위해 학생의 코드를 리팩토링 했던 내용을 공유하고자 적어보았습니다. 초보 분들이 코드를 작성할때 참고하면 좋을 것입니다. 너무 구체적인 내용이 포함된 코드 예제 위의 코드는 storeIds에 해당되는 StoreSummary List를 가져와서 DTO로 변경하는 코드입니다.그렇게 읽기 어려운 코드는 아니지만 무엇이 문제였을까요? 너무 구체적인 내용이 있는 코드 처음 Repository에서 StoreSummary를 가져오는 코드는 크게 문제가 없어보입니다. 보면 가져오는구나를 바로 알수 있죠. 그러나 List부터 있는 DTO로 변환하는 코드는 차분히 읽지 않으면 어떤 일을 하는지 바로 알아차리기 힘듭니다. 이럴땐 메서드를 추출하여 하나의 의미있는 이름으로 변경하는 것이 좋습니다. 변경한 코드는 다음과 같습니다. 이제 `

2022년 12월 16일
·
0개의 댓글
·
post-thumbnail

[Spring] Controller, Service는 왜 분리해야할까?

Spring을 처음 배우는 모든 학생 분들이 가장 많이하는 질문이 그냥 Controller에서 전부 구현하면 안되나요? Service를 왜 만들어야하죠? 라는 질문입니다. Controller에 다 구현해도 똑같이 동작하기 떄문에 이런 질문을 가질 수 있습니다. 또한 생각보다 많은 초보 개발자 분들이 왜 이런 구조로 분리하는지 이유를 모르고 다들 분리하기 때문에 그냥 분리합니다. 여러 다른이유로 소프트웨어 아키텍처를 변경해야 할때 유연하게 변경할 수 없습니다. 그러나 원리를 알면 다음에 더 좋은 아키텍처를 만드는데 비슷한 원리를 적용할 수 있습니다. 이번 포스팅에서는 Controller, Service를 분리하는 이유들에 대해 알아보겠습니다. API의 추가 및 변경될 경우 RESTful API를 통해 서비스를 운영하고 있다고 가정합시다. 사이트 반응속도가 너무 느려 서비스를 Light House로 분석해보니 하나의 페이지에서 너무 많은 API를 호출해 문제가

2022년 11월 30일
·
1개의 댓글
·
post-thumbnail

포트폴리오용 무료 백엔드 서버 만들기 (Qoddi) - Spring 배포 예제

최근 heroku의 모든 plan이 유료화 되면서 백엔드용 무료 서버가 거이 사라졌습니다. 프론트엔드를 위한 무료 웹 호스팅 서버는 netlify, github page, vercel등 점점 많아지고 있는데 백엔드는 점점 사라지고 있죠. AWS의 free tier를 사용해도 되지만 ec2에 s3, ssl, loadbalancer, rdb등을 추가하면 free tier 인데도비용이 꽤 나가는 것이 현실입니다. Serverless나 Egde Computing쪽에는 무료 서비스가 많이 생겼으나, 백엔드 개발을 이제 막 시작한 개발자의 프로젝트를 Serverless 구조로 바꾸기엔 너무 어려운 것이 현실입니다. 이러한 문제 때문에 Heroku를 대체할 만한 무료 WAS(Web Application Service)서버를 찾다보니 Qoddi라는 서비스가 눈에 들어와 실제로 배포해 보았습니다. Qoddi ![](https://velog.velcdn.com/images/couchcodin

2022년 11월 16일
·
6개의 댓글
·
post-thumbnail

[Spring] 개발환경에 따라 Profile 분리하는 방법과 활용 예제를 알아보자

목적 개발 환경과 Product 실행 환경을 분리하기 위해서 사용 ex) 로컬 개발환경에서는 h2 데이터베이스를 사용하고, 실제 배포환경에서는 postgres db를 사용하는 경우 ex) 보안 파일이나 암호를 모든 개발자에게 공개할 수 없는 경우 ex) 로컬 개발환경에서는 oauth2 토큰 없이 로그인, 실제 배포환경에서는 토큰을 포함해서 로그인을 할 경우 Profile이란 Spring 실행 환경을 Profile이라 한다. Profile에 따라 다른 설정과, 다른 Bean을 주입할 수 있다. properties 파일 분리하기 application-{개발환경}.properties를 만든다. application.propert

2022년 4월 8일
·
0개의 댓글
·
post-thumbnail

[Spring] QueryDSL로 조건검색 API를 만들어보자(동적 쿼리)

[그림: 카우치코딩 3기 카페메이트] (https://github.com/sungeun101/cafemate) 개발을 하다보면 위의 그림 처럼 여러가지 조건을 가지고 검색을 해야할 경우가 많이 있습니다. 조건이 고정되어 있다면 조금 쉽겠지만 사용자가 필요에 따라 조건을 추가하거나 뺄 수 있다면 슬슬 머리가 아픕니다. 요런식으로 if문을 통해서 구현을 조건 검색을 구현 할 수 있으나 이 경우 조건이 3개만 되도 6개의 if문을 써야하고 4개가 되면 무려 24개의 if문을 사용해야합니다. 조금 더 프로그래밍 센스가 있으신 분들은 JPQL과 Builder 패턴을 이용해서 SQL을 동적으로 생성할 수 있지만 SQL를 직접 작성 하는 것은

2022년 3월 26일
·
0개의 댓글
·
post-thumbnail

Spring Security (1) - 구조와 동작 방식

Spring Security는 Spring Application 개발시에 보안을 적용하기 위해 사용하는 보안 프레임워크 입니다. Spring Security는 웹 보안을 위하여 인증 및 보안 관련 로직을 제공합니다. 특히 Spring Security의 가장 중요한 기능 중 하나는 리소스별 권한 제어인데, Spring Security에서는 설정을 통해 리소스별 권한 제어, 리소스별 인증 로직 구현을 쉽게 구현할 수 있습니다. Spring Security 구조 Spring Security는 Filter 한 종류로 사용자의 요청이 Servlet Application에 도착하기 전에 사용자의 요청을 먼저 받아 사용자의 요청의 권한 및 보안 점검을 시행합니다. D Spring Seucity는 어떤 식으로 동작할까요? (아직 프레임워크에 대해 잘 모르시는 분들은 [이전 포스팅](https://velog.io/@couchcoding/%ED%94%84%EB%A0%88%EC%9E%84%EC%

2022년 1월 25일
·
0개의 댓글
·
post-thumbnail

프레임워크가 무엇이고, 어떻게 사용해야할까?? (프레임워크 동작방식 예제)

우리는 웹 개발을 할 때, 앱 개발을 할 때, 인공지능 개발을 할 때, 게임 개발을 할 때, 어떤 개발을 하던 우리는 프레임워크를 사용해서 개발을 합니다. 그렇다면 프레임워크 먼가.. 느낌상 라이브러리 비슷한거 같긴 한데 정확히 무엇일까요?? 프레임워크(Framework)란? 프레임워크(Framework) 라는 단어는 Frame(틀) + work(일)이라는 단어의 합성어입니다. 일 구조, 혹은 작업 구조라는 뜻과 같이 프레임워크는 어떠한 일을 처리하기 위한 구조를 제공합니다. 프레임워크 위에서 개발을 하면 우리는 일을 하기위한 전체 구조와 동작방식을 만들지 않습니다. 프레임워크로 개발을 할 경우 전체 동작방식은 프레임워크가 제공하고 우리는 프레임워크의 일정 부분만 개발합니다. 예를 들어 웹 프레임워크의 경우 HTTP 요청이 오면 Path, Params, Header, Body로 파싱 및 디코딩을 수행하고 보안/인증 설정에 따라 보안/인증

2021년 10월 4일
·
0개의 댓글
·
post-thumbnail

Firebase로 Google 로그인 구현하기 (Spring 파트)

안녕하세요 카우치코딩입니다. 이전 포스팅에 이어 구글 로그인응 이용하기 위하여 Java Backend(SpringBoot)를 통해 Resource Service를 구현하는 것을 배워보겠습니다. 예제는 자바로 진행하나 구조를 익히면 다른 백엔드 프레임워크에서도 사용할 수 있을 것입니다. 위 그림에서 6-9에 해당되는 로직입니다. 1. 프로젝트 셋업하기 Fireba

2021년 9월 19일
·
0개의 댓글
·
post-thumbnail

개발 초보도 바로 적용해 볼 수 있는 좋은 코드 작성법

개발자가 되고싶어서 개발 공부를 시작하고 개발자가 되기위해 준비하다보면 개발을 빠르게 하는 것도 중요하지만 그 만큼 좋은 코드를 작성하는 것이 중요하다는 소리를 듭습니다. 실제로 회사에서는 코드의 생산성 만큼이나 중요시 여기는게 당신의 코드의 품질입니다. 그렇다면 좋은 코드란 무엇이고 어떻게 좋은 코드를 작성할 수 있을까요?? 일반적으로 좋은 코드란 가독성이 좋아 이해하기 쉽고, 변경하기 쉬우며, 재사용하기 쉽고, 효율적인 코드를 이야기합니다. 소프트웨어 개발은 단 한번에 개발에서 끝나는 것이 아니라 이후 수많은 변경 이 필요하기 때문에 기능 개발 만큼 중요한 것이 바로 유지보수 입니다. 따라서 코드 다시 읽었을때 이해하기 쉽고, 나중에 변경하기 쉬워야 합니다. 코딩

2021년 8월 28일
·
1개의 댓글
·