[DEV] study&learn
article thumbnail
Foam Foam Form 프로젝트 배포!
일상 & 회고 2023. 2. 1. 23:26

Foam Foam Form(FFF) 사이트 https://www.foamfoamform.com 프로젝트 배포 완료 우리 조의 프로젝트 폼폼폼이 세상 사람들에게 공개됬다. 한 번씩 둘러보고 피드백도 남겨주세요!!! 사실 아쉬움도 많이 남지만, 팀원들이 밤낮으로 열심히 작업한 결과물이 세상에 공개됬다는 사실에 가슴이 떨린다. 팀원들에게는 정말 감사한 마음을 원없이 전하고 싶다. 끝나지 않았지만 중간 회고랄까 아직 항해가 끝난 것은 아니다. 배포를 했고, 이제 유저들의 피드백을 받아 조금 더 완성도를 높여야한다. 그리고 개인적으로 자바와 스프링에 대한 기초를 쌓아야 할 것 같다. 제대로 임한 첫 프로젝트이다 보니 당연한 거지만, 내가 너무나 많이 부족하구나 라는 생각이 많이 든다. 그리고 한 편으론 이후에 내..

article thumbnail
Spring Boot에 Redis 적용
스프링 2023. 1. 25. 09:36

Reference Redis 설치 및 간단한 사용 방법 (Mac) [SpringBoot] Redis+SMTP 인증메일 구현 Spring Boot 에서 Redis 사용하기 [Spring Boot + Redis] 스프링 부트 Redis 사용해보기 [Redis] AWS EC2에 redis-server setup 하기 [REDIS] 📑 redis.conf 파일 설정 항목 정리 LRU Cache 이해하기 0. Local 에 Redis 설치(Mac OS) # brew 로 redis 설치 brew install redis # redis 시작 명령어 brew services start redis # brew services stop redis # brew services restart redis # redis cli ..

article thumbnail
REST API란?
테코톡 2023. 1. 20. 10:43

REST API 에 대한 일반적인 인식 - URI 를 통해 자원을 지정 - HTTP 메서드 -> 자원에 대한 행위를 표현 :: CRUD :: POST /user GET /user/1 PUT /user/1 DELETE /user/1 로이 필딩의 REST API REST - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 대한민국의 힙합 음악가에 대해서는 R-EST 문서를 참고하십시오. REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프 ko.wikipedia.org REST 아키텍처 스타일에 부합하는 API REST 아키텍처에 적용되는 6가지 제한 조건 Client-Server Stateless Cache Un..

article thumbnail
CI/CD 와 무중단 배포
테코톡 2023. 1. 13. 23:23

CI/CD 📌 용어정리 컴파일 프로그래머가 작성한 소스 코드를 기계어로 변환하는 과정 빌드 소스 코드 파일을 컴퓨터에서 실행할 수 있는 소프트웨어 산출물로 만드는 과정 배포 빌드의 결과물을 사용자가 접근할 수 있는 환경에 배치하는 것 CI (Continuous Integration) 이란? 지속적 통합이라는 뜻으로 개발을 진행하면서도 품질을 관리할 수 있도록 여러 명이 하나의 코드에 대해서 수정을 진행해도 지속적으로 통합하면서 관리할 수 있음을 의미한다. CI 가 있기전에 ... 개발자들은 머지 데이라는 날을 통해 모든 분기 소스 코드를 병합하는 업무를 하였다. 이는 결과적으로 많은 리소스의 낭비를 초래하게 되었다. CI 과정 개발자가 코드 병합을 요청하면 → CI 툴이 빌드와 테스트를 진행한다. (성공..

article thumbnail
Servlet & Spring Web MVC
테코톡 2023. 1. 12. 22:27

Servlet 그리고 Spring Web MVC Servlet 은? 웹 애플리 케이션을 만들 때 필요한 인터페이스 Spring Web MVC 는? Spring Framework 에 있는 모듈로써 MVC 패턴을 사용하여 Web Service 를 만든다. 그리고 Servlet 을 사용한다. Servlet 은 왜 생겼을까? 태초에 웹 프로그래밍은 정적 데이터만 전달할 수 있었다. → 사용자(요청)에 따라 다른 처리를 해줄 수 없다. → 동적인 처리를 해주는 웹 애플리케이션이 없다. 동적 데이터를 처리하는 CGI CGI 란 Web Server 와 프로그램 사이의 규약을 의미한다. → CGI 는 요청이 들어올 때 마다 프로세스를 만든다. → 따라서 많은 사용자를 처리하기엔 무리가 있었다. 문제점 1. 요청마다 무..

article thumbnail
AOP 와 Spring AOP
테코톡 2023. 1. 11. 23:40

🧐 AOP 가 무엇일까? Aspect Oriented Programming 관점 지향 프로그래밍 횡단 관심사(cross-cutting concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 페러다임 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 개발자는 반복 작업을 줄이고 핵심 기능 개발에만 집중할 수 있음 즉, 여러 객체에 공통으로 적용할 수 있는 기능을 분리하여 재사용성을 높여주는 프로그래밍 기법이다. 프록시란? 자신이 클라이언트가 사용하려고 하는 실제 대상인 것처럼 위장해서 클라이언트의 요청을 받아주는 것(대리인, 대리자) 사용 목적에 따라 부르는 이름이 달라진다. 클라이언트가 타깃에 접근하는 방법을 제어 -> 프록시 패턴 타깃에 부가적인 기능을 부여 -> 테코레이터..

article thumbnail
Spring 과 Spring Boot
테코톡 2023. 1. 10. 16:02

Spring Boot? 👉🏻 dependency Spring - dependency 가 너무 길다. - 버전까지 명확하게 관리해주어야 한다. Spring Boot - Spring 에 비해 dependency 가 짧고 간결하다. (gradle 을 사용하면 더 짧아짐!) - 버전 관리를 권장 버전으로 자동으로 설정해준다! 👉🏻 Configuration Spring - configuration 이 너무 길다. Spring Boot - 짧고 간결한 application.properties 로 대체! - 요즘은 .properties 대신 .yml 을 이용하기도 한다. (사람이 훨씬 읽기 쉬운 형식) 👉🏻 Tomcat Spring - 외장 서버로 Tomcat 을 사용한다. - 구동 시간이 길어진다는 특징이 있다. ..

article thumbnail
JVM Stack & Heap
테코톡 2023. 1. 10. 03:04

JVM - 자바 바이트 코드는 타겟 플랫폼에 상관 없이 JVM 위에서 동작한다. - 물론, JVM 은 타겟 플랫폼에 의존한다. Write Once, Run Anywhere" - Sun Microsysyems 네가 짠 자바 코드를 컴파일해서 배포하면, 어떤 플랫폼이든 다시 컴파일할 필요 없이 실행시킬 수 있어! 하지만 실행하려면 그 플랫폼에 맞는 JVM 이 설치되어 있어야 해! 자바 코드가 실행되기까지 모든 쓰레드가 공유 Method Area - 클래스 로더가 클래스 파일을 읽어오면, 클래스 정보를 파싱해서 Method Area 에 저장 Heap - 프로그램을 실행하면서 생성한 모든 객체(인스턴스)를 Heap 에 저장 쓰레드 마다 존재 Program Counter (PC) - 각 스레드는 메서드를 실행하고..

article thumbnail
레이어드 아키텍처 패턴
카테고리 없음 2022. 12. 5. 23:26

Presentation 계층 사용자와 상호 작용 처리 계층 CLI, HTTP 요청, HTML 처리 등을 담당한다. HTTP 요청 처리 및 HTML 렌더링에 대해 알고 있는 웹 계층 흔히 말하는 MVC (Model / View / Controller) 도 이 계층에 속한다. 우리가 URL을 매핑해서 특정 메서드가 해당 URL로 요청이 올 때마다 호출되게 프로그래밍 했다. 그 계층을 말하는 것이며, 스프링에서는 @Controller 어노테이션을 사용하여 표현한다. Domain(Business or Service) 계층 서비스/시스템의 핵심 로직 유효성 검사 및 계산을 포함하는 Business 논리 계층 애플리케이션이 수행해야하는 도메인과 관련된 작업들을 담당한다. 입력/저장된 데이터를 기반으로 계산 Pres..

article thumbnail
JWT (JSON Web Token)
카테고리 없음 2022. 12. 5. 23:25

내용 및 이미지 출처 [인증] 세션/쿠키 방식, JWT 방식 [인증] Access Token, Refresh Token JWT의 개념의 개념부터 구현까지 알아보기 [WEB] 📚 JWTjson web token란 💯정리 [WEB] 📚 Access Token & Refresh Token 원리 (feat. JWT) ❓ Token 인증이란 토큰 기반 인증 시스템은 클라이언트가 서버에 접속을 하면 서버에서 해당 클라이언트에게 인증이 되었다는 의미로 '토큰'을 부여한다. 이 토큰은 유일하다. 토큰을 발급받은 클라이언트는 또 다시 서버에 요청을 보낼 때 요청 헤더에 토큰을 심어 보낸다. 서버에서는 클라이언트로부터 받은 토큰을 서버에서 제공한 토큰과의 일치 여부를 체크하여 인증 과정을 처리하게 된다. 토큰은 서버가 아..

article thumbnail
인터페이스와 다형성
카테고리 없음 2022. 12. 5. 23:24

인터페이스 자바에서 인터페이스(Interface)는 객체의 사용방법을 정의한 타입이다. 인터페이스를 통해 다양한 객체를 동일한 사용 방법으로 이용할 수 있다. 인터페이스는 개발 코드와 객체가 서로 통신하는 접점 역할을 한다. 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출시킨다. 왜 중간에 인터페이스를 두는걸까? 그 이유는 개발 코드를 수정하지 않고 사용하는 객체를 변경할 수 있도록 하기 위해서이다. 인터페이스는 하나의 객체가 아니라 여러 객체들과 사용이 가능하므로 어떤 객체를 사용하느냐에 따라서 실행 내용과 리턴값이 다를 수 있다. 따라서 개발 코드 측면에서는 코드 변경 없이 실행 내용과 리턴값을 다양화할 수 있다는 장점을 가지게 된다. 인터페이스 선언 인터페이스 선언은 c..

article thumbnail
3주차 - 스프링 입문 주차
카테고리 없음 2022. 12. 5. 23:13

3주차 마무리. 언제나 처럼 나의 부족함을 절실하게 느꼈다. 다만, 내가 어떤 방향성을 가지고 가야할지에 대해 어느정도 정리가 되었다. 공부의 방법을 "이렇게 하자!!!"라는 정리가 아니다. 주어진 시간을 어떻게 활용할지에 대하여 어느정도 틀을 잡게 되었다. 나만의 시스템을 확립해 나가자. 그리고 그 시스템 안에서 움직이는 순간만큼은 시스템에 온전히 내 몸을 맡기자. (의심하며 멈추는 등 아까운 시간을 허비하지 말자.) DI (Dependency Injection) DI = 의존성 주입 객체간 의존성을 개발자가 객체 내부에서 직접 호출(new 연사자) 하는 대신, 외부(스프링 컨테이너)에서 객체를 생성해서 넣어주는 방식이다. 외부에서 두 객체 간의 관계를 설정해주는 디자인 패턴으로, 인터페이스를 사이에 ..