전체 글

전체 글

    환경변수 vs AWS Secrets Manager

    웹 애플리케이션을 개발하다 보면 데이터베이스 비밀번호, API 키, 암호화 키 등 민감한 정보를 안전하게 관리해야 하는 상황이 생깁니다. 오늘은 Flask 애플리케이션에서 이러한 설정값들을 관리하는 두 가지 방법을 직접 구현해보고, 각각의 장단점을 비교해보겠습니다.1. 환경변수 방식구현 방법환경변수 방식은 시스템의 환경변수나 systemd 서비스 파일에 설정값을 저장하는 방법입니다.Flask 코드 예시:import os# 환경변수에서 설정값 가져오기app.secret_key = os.environ.get('SECRET_KEY')app.config['MYSQL_HOST'] = os.environ.get('MYSQL_HOST')app.config['MYSQL_PASSWORD'] = os.environ.get..

    신세계 아이앤씨 클라우드 엔지니어 양성과정 5차수 KDT 한달 교육후기

    "본 후기, 게시글을 작성하는 대가로 소정의 상품을 지급받았으나, 저의 솔직한 후기로 작성한 컨텐츠입니다."안녕하세요! 신세계아이앤씨 클라우드 엔지니어 양성과정 5차에 참여한 지 벌써 한 달이 넘게 지났습니다. 이 과정에 지원을 고민하고 계신 분들을 위해 솔직하고 구체적인 경험담을 공유해드리겠습니다.📋 기본 정보과정명: 신세계아이앤씨 클라우드 엔지니어 양성과정 5차교육기간: 6개월 (2025년 4월 ~ 2025년 10월)교육장소: 서울 강남구 삼성중앙역 캠퍼스세븐 6층교육시간: 평일 9시-18시 (주 40시간)교육비: 전액 무료 (국비지원) 📚 체계적인 커리큘럼 구성1.5 개월차 교육 내용IT Infra: 서버, 네트워크, 가상화 개념virtual box, rocky 9, mobaxterm, remo..

    AWS SAA 합격 후기

    요즘 같은 AI시대에 클라우드는 필수라고 생각한다.마침 학교에서 무료로 한달간 AWS 자격증 취득과정을 진행하는 것이었다.바로 신청을 박고 학교에서 주말마다 AWS 실습과 이론을 공부하게 되었다.정말 클라우드 시대에 맞게 수강생이 내 또래부터 60대까지 다양했다.(자신의 분야도 아닌데 대단하다 생각이 들었다...!)교육과정을 마치고 AWS Certified Cloud Practitioner와 Associate중 고민을 하던중 이왕 따려면 높은거 따야겠다는 생각이 들었다.못먹어도 고! 그렇게 한달간 배웠던 AWS실습과 이론지식 + 그동안 클라우드를 다뤄왔던 실력으로 시험을 치뤘지만 결과는 699점으로 한두 문제? 정도 차이로 떨어진것!!!!!!!!!! 720점이 통과다...눈물을 머금고 2주뒤에 시험을 다..

    Fitbit developer Application 등록하기

    이번 글에서는 Fitbit developer Application을 등록해볼 것이다! 📌 왜 등록해야하나? Fitbit에서는 아래 사진과 같이 여러가지 정보들을 제공한다. 이러한 정보들을 마음대로 쓰기 위해서는 Fitbit developer Application 을 등록해야한다! 그러면 등록을 해보자 📖 Application 등록 우선 아래 링크를 접속한다. Login dev.fitbit.com 접속한 사이트에서 로그인을 한 후 Register an application 버튼을 클릭하자! 그러면 아래 사진을 볼 수 있다 아래 정보들은 기호에 맞게 잘 적어주시고 Register버튼을 누르면 등록이 완료될 것이다. 그 후 Manage my apps를 클릭하고 자신이 만든 앱에 들어가보자 들어가게되면 만들게된..

    Fitbit이란?

    랩실 첫 산학공동프로젝트 주제로 2가지가 있었는데 그 중에서 Fitbit이라는 애플워치랑 비슷하게 생긴 구글에서 만든 웨어러블 디바이스로 수면주기를 분석하여 건강관리를 하는 CRS or CRM(휴서카디안)어플에 대해 공부하기로 하였다. 아직 베타버전의 출시되지않은 어플이다. (면역력이 약해 자주 아픈 나는 자연스럽게 이 주제에 끌렸다...) 이 주제를 수행하기 위해 나는 먼저 Fitbit에 대해 조사하여야 했다. 📖 Fitbit이란? Fitbit은 웨어러블 기술을 사용하여 건강과 피트니스를 추적하는 장치와 앱을 제공하는 회사이다. Fitbit의 제품군은 걸음 수, 심박수, 수면, 운동, 음식 섭취 등과 같은 여러 가지 건강 및 활동 지표를 측정하고, 이 정보를 사용자가 목표를 설정하고 달성하는 데 도움이..

    [Part 2] 템플릿 적용하기 #6

    위에 zip파일은 템플릿이다 우선은 템플릿을 이용하여 만들어보자 zip을 다운하여 압축을 풀어준다. 그리고 pages => tables우클릭=> 연결프로그램 => 메모장 이렇게 html코드가 뜨게되는데 모두 복사한다음 list.jsp에 위에 선언부 빼고 붙여넣는다. 그리고 서버를 실행하면?? 이렇게 깨져서 나온다. css나 js파일이 없기때문이다. 고쳐보자 서버를 먼저 멈추어주고 여기서 폴더들만 복사하여 resources라는 곳에 붙여넣어주자 하지만 바로 템플릿이 적용되어지진 않는다. 경로가 다르기때문이다. 지금부터 이 경로를 수정에 들어갈 것이다. 우선 list.jsp에 ../vendor의 경로를 바꿔주어야한다. ctrl+F를 하고 ../ ==> /resources/로 replace All 을 해주자 ..

    [Part 2] Controller 게시물 목록/등록/수정/삭제 #5

    📌 웹 계층의 구현 웹 계층에서 가장 먼저 설계하는 것은 URI의 설계 URL이동 : Redirect 방식 📌 진행 작업의 순서 목록 페이지 - 모든 진입 경로인 동시에 입력을 가는 링크 등록 입력 / 처리 - 게시물 등록 및 처리, 처리 후 이동 조회 - 목록 페이지에서 특정 게시물로 이동 수정 / 삭제 - 조회 페이지에서 수정 / 삭제 선택해 처리 📌 BoardController 목록의 처리 게시물(BoardVO)의 목록을 Model에 담아서 전달 📝게시물 목록처리 자 그러면 컨트롤러를 만들어보자 위의 사진처럼 BoardController.java라는 이름의 컨트롤러를 만들고 로그에 list.........를 찍어서 test로 확인해보려고한다. test클래스를 만들어주자 코드 더보기 package o..

    [Part 2] 비즈니스 계층 #4

    비즈니스 계층은 똑같은 일을 두번하여 비효율적으로 보일지 몰라도 서비스를 확장할 때 꼭 필요하다. 📝비즈니스 계층 (서비스 계층) 고객의 요구사항을 반영하는 계층 업무의 단위로 설계 트랜잭션(거래)의 단위 여러개의 Mapper나 DAO를 사용하는 경우가 존재함 xxxService의 형태로 작성 📌서비스 패키지 설정 인터페이스와 클래스를 설정하고, root-context.xml에 등록 우선 패키지와 인터페이스와 클래스를 만들어준다. 인터페이스를 목적은 하나다. 실제 객체를 모르게하는 것이다. 실제 객체를 몰라도 타입만 알고 만들수 있게 유연하게 만드는 것이 목적이다. 의존성 주입과 인터페이스를 결합하면서 굉장히 유연한 코드가 되는 것이다. root-context.xml에 가셔서 context를 추가해주시고..

    [Part 2] 게시물 조회/삭제/수정 #3

    여기서부터 이제 리턴타입이 생긴다. 조회부터 해보자 📌 Read (조회) 리턴타입이 있어 void는 빼고 BoardVO로 들어가고 primary key인 bno를 괄호 안에 넣어준다. BoardMapper.xml에도 select태그를 생성해주고 다음은 test코드를 생성해주는 것이다. 이제 너무 예상이 갈정도로 익숙할 것이다. ㅎㅎ 현재 내 DB에는 6개가 담겨져 있다. 그중에서 6번 데이터를 뽑아보는 코드를 작성해보았다. 원하는 결과가 잘 조회 되었다. 📌 Delete (삭제) 이제 삭제를 해보자. 마찬가지로 리턴타입이 있다. 그리고 primary key로 구분할 것이다. xml에도 delete태그를 작성해주고 Test코드도 작성해준다. 결과는? DB에서 1번만 잘 삭제되었다. 📌 Update (수정)..

    [Part 2] BoardVO클래스와 매퍼테스트 #2

    이번 글에서는 VO클래스를 생성하고 매퍼테스트를 해보겠다. package를 생성하고 그 밑에 VO클래스를 만든 후 위 사진과 같이 코드를 넣는다. Mapper 인터페이스 작업을 해보자. BoardMapper라는 인터페이스를 org.zero.mapper 패키지 아래에 생성해준 후 방금 위에서 만든 VO와의 연결을 확인하기위해 아래와 같이 코드를 작성한다. BoardMapper.java package org.zero.mapper; import java.util.List; import org.zero.domain.BoardVO; public interface BoardMapper { List getList(); } 그리고 아래의 사진처럼 org.zero.mapper라는 폴더를 생성하시고 BoardMapper...