본문 바로가기

분류 전체보기

(107)
[테크 세미나 후기] Datadog의 “Front-End에서 Back-End까지의 여정” 후기 안녕하세요! 3월 23일에 열린 DataDog의 “Front-End에서 Back-End까지의 여정” 테크 세미나의 후기를 작성하게 된 DEVOCEAN YOUNG 2기 자료구조(7조) 입니다.🤗 이번 세미나는 “1부 : Datadog 소개와 활용 사례”와 “2부 : Datadog의 Front End에서 Back-End까지의 여정”으로 구성되었습니다. 세미나 내용 중 Datadog에 대한 소개와 몇 가지 기능들에 대해 간략하게 소개하겠습니다. [ 🐶 Datadog 이란? ] “복잡한 IT환경에서 다양한 Tech Stack을 활용하여 개발과 운영을 효율적으로 할 수 있게 제공하는 end-to-end Full Stack 모니터링 솔루션”입니다. Datadog은 “One product One Platform으로 ..
Chap1 - 1. 도메인 모델 시작하기 📘 1.1 도메인이란? 예를 들어, 온라인 서점 = “소프트웨어로 해결하고자 하는 문제 영역, 즉 도메인에 해당한다” 한 도메인은 다시 하위 도메인으로 나눌 수 있다. ex) 주문, 혜택, 회원, 결제, 배송 등 한 하위 도메인은 다른 하위 도메인과 연동하여 완전한 기능을 제공한다. ex) 고객이 물건을 구매하면 주문, 결제, 배송, 혜택 하위 도메인의 기능이 엮이게 된다. 소프트웨어가 도메인의 모든 기능을 제공하진 않는다. 특정 도메인을 위한 소프트웨어라고 해서 도메인이 제공해야 할 모든 기능을 직접 구현하는 것은 아니다. → 쇼핑몰 자체 시스템이 아닌 외부 배송 업체의 시스템을 사용하고 배송 추적 정보를 제공하는 필요한 기능만 일부 연동하는 방식 도메인마다 고정된 하위 도메인이 존재하는 것은 아니다...
[발대식] SKT DEVOCEAN YOUNG 2기 합격 AND 발대식 후기 🌊 데보션 (DEVOCEAN) 이란? 🌊 2021년 SKT가 SK ICT패밀리 소속 개발 전문가들과 외부 개발 인재간 소통을 위해 만든 개발자 커뮤니티로, 개발자들이 지식과 경험을 공유하고 커뮤니티를 구축해 개발 생태계 발전에 이바지하는 것을 목표로 합니다. https://devocean.sk.com/ 🌊 데보션 영 (DEVOCEAN YOUNG) 이란? 🌊 '데보션 영(DEVOCEAN YOUNG)'은 SKT가 운영하는 개발자 커뮤니티 '데보션’에서 활동하며 콘텐츠를 통해 개발자 생태계 내 소통과 공유 문화를 확산시킬 대학생 테크 인플루언서 입니다. 🎉 지원, 그리고 합격.🎉 필자의 인생 좌우명인 "선순환"과 데보션의 "지식과 경험의 공유/협업을 통한 선순환 synergy"는 일맥상통한다고 생각했습니다. ..
[Spring Security] 스프링 시큐리티란? 스프링 시큐리티에 대해서 알아보기 전 간단하게 개념 확인하겠습니다! 🎨 What is Servlet? 웹 기반의 요청에 대해 동적으로 처리해주는 역할입니다. 해당 URL에 기반한 HTTPservletRequest를 생성하고 response 결과를 전송합니다. request 객체에 있는 정보들을 꺼내서 사용, response 객체에 정보를 편리하게 입력 🎨 What is Servlet Container? 서블릿은 요청을 받거나 내보낼 때, 자신이 알아서 하는 것이 아니라 서블릿을 실행시키는 주체인 서블릿 컨테이너라는 것을 이용합니다. 즉, Servlet을 관리한다는 Servlet Container는 어떤 요청에 대해 어떤 Servlet을 실행할 것인지 제어하는 것이죠. 더 쉽게 말하면,, 서블릿이 웹서버와..
[JPA] JPA와 JPA의 필요성 💡 JPA(Java Persistence API) = 자바로 영속 영역을 처리하는 API JPA 상위 개념은 ORM(Object Relational Mapping)이라는 패러다임으로 이어짐 → 이는 객체 지향으로 구성한 시스템을 ⇒ 관계형 데이터베이스에 매핑하는 패러다임이다. JPA를 이용하는 개발의 핵심은 객체지향을 통해서 영속 계층을 처리하는 데 있음 → JPA를 이용할 때는 테이블과 SQL을 다루는 것이 아니라 ❌ 데이터에 해당하는 객체를 엔티티 객체라는 것으로 다루고 JPA로 이를 데이터베이스와 연동해서 관리한다. 💡 JPA의 필요성 객체와 관계형 데이터베이스의 차이연관관계 - 상속테이블은 외래 키를 사용: JOIN ON M.TEAM_ID = T.TEAM_ID 객체는 Member에서 Team으로는..
[2022] 회고록 | 개발 시작/이펍/라꾸라꾸 2022년은 나에게 큰 성장이 있었던 한 해였다. 커리어적인 분야, 학업 분야 사람과의 관계에서 다양한 경험이 있었고 이 경험으로 인해 울고 웃었다. 키워드 별로 간단하게 생각을 정리해보았다. 2022년의 키워드 = EFUB, 개발, 학교 1. EFUB(Ewha Frontend UXUI Backend) EFUB에 대한 자세한 내용은 아래 링크에 있습니다!😃 https://coding-with-the-lord-everyday.tistory.com/77 2. 개발 새로 시작한 것 = 스프링 공부, 깃허브 잔디 채우기, 티스토리 작성 [스프링 공부 시작] 이전에 웹 개발을 시작할 때 장고를 잠깐 한 적이 있다. 이때, 필자의 성격상 통제하는 것을 좋아하기 때문에 모든 것을 알아야 마음이 놓인다. 이에 따라 D..
2022 EUFB 2기 활동을 마치며. 2022년 가장 기억에 남는 일은 이펍에 합격했던 것이다. 비전공자에 뼈문과생, 그리고 화려한 스펙이 없는 상태에서 간절함과 열정으로 붙었다. 고학번이라 마지막 기회라고 생각하고 넣었다. 이 동아리를 붙기 위해 말그대로 ‘발악’을 한 것 같다. 다행히 이러한 열정이 닿아 동아리 부원으로 합격하게 되었다. 동아리 합격 후 다른 부원들을 보니 다 소프트웨어학부생이며 문과 비전공자는 나 하나뿐이었다. 그 순간 뿌듯함과 동시에 부담감이 느껴졌다. 문과 비전공자는 전공생보다 부족할 것이라는 인식을 깨야겠다는 생각이 들었다. 또한, 학과가 일반적인 문과 학과가 아닌 ‘기독교학과’라는 어쩌면 생소하고 특이한 학과인데 나의 행동과 성과가 그 학과를 대변하는 것 같아 더욱 책임감이 들었다. 그래서 더욱 노력해야 겠다고 ..
[보안] 패스워드 보안 지침 개발할 때 사용자의 패스워드를 어떻게 처리해야 할 지 고민이 되었다. 많은 서비스에서 영문, 숫자, 특수 기호를 조합하라는 조건을 본 것 같다. 더 구체적으로 직접 서비스를 개발할 때 어떤 조건을 주어야 하고 어떤 방식으로 저장해야할 지 고민이 되어(비밀번호를 그대로 저장하면 개발자들이 뭔짓을 할 수도 있지 않는가!) KISA의 안내 지침을 찾아서 작성해보았다. KISA에서 제공하는 "패스워드 선택 및 이용 안내서"에 따르면 1) 초기 패스워드, 패스워드 분실 등의 이유로 이용자에게 제공하기 위해 생성된 패스워드는 최소 6자 이상이어야하며 안전하게 생성된 난수여야 한다. -> 라꾸라꾸 프로젝트의 경우 다음과 같이 난수를 생성하여 사용자의 이메일로 전송하는 방법을 이용했다. public String get..
빈 생명주기 콜백 빈 생명주기 콜백 시작 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화와 종료 작업이 필요하다.(안전하게 종료 처리시키는 것이 필요하다) (참고 : 마치 TCP/IP 연결할 때 오래 걸리니까 미리 DB 와 연결해놓는 데이터베이스 커넥션 풀과 같은 개념이라고 생각하면 된다.) [예제] 간단하게 외부 네트워크에 미리 연결하는 객체를 하나 생성한다고 가정해보자. (서버가 뜰 때 미리 외부 네트워크에 연결) 실제로 네트워크에 연결하는 것은 아니고, 단순히 문자만 출력하도록 했다. 이 NetworkClient 는 애플리케이션 시작 시점에 connect() 를 호출 -> 연결을 맺어두어야 하고, 애플리케이션이 종료되면 disCon..
같은 타입인 여러 개의 빈들을 조회하고 싶을 때 조회한 빈이 모두 필요할 때 의도적으로 정말 해당 타입의 스프링 빈이 다 필요한 경우도 있다. 예를 들어서 할인 서비스를 제공하는데, 클라이언트가 할인의 종류(rate - 비율로 할인, fix - 고정금액 할인)를 선택할 수 있다고 가정해보자. 스프링을 사용하면 소위 말하는 전략 패턴을 매우 간단하게 구현할 수 있다. package hello.core.autowired; import hello.core.AutoAppConfig; import hello.core.discount.discount.DiscountPolicy; import hello.core.member.Grade; import hello.core.member.Member; //import org.junit.jupiter.api.Assertio..