Framework54 Laravel Authentication Session Life Time 종료시 강제로 로그아웃 로그 쌓기 Laravel Auth Session을 통한 로그인,로그아웃 구현 라라벨에서는 사용자가 애플리케이션으로 인증하고 "로그인"할 수있는 Authentication(인증) 방법을 제공하기 때문에 손 쉽게 로그인 로그아웃 기능을 구현할 수 있다. 세션 스토리지와 쿠키를 사용하여 상태를 유지하는 session 가드와, 각 요청-request와 함께 전달되는 "API 토큰"을 사용하여 사용자를 인증하는 token 가드를 제공하는데, 최근 진행했던 프로젝트의 경우 다수의 사용자가 아닌 특정 사용자들이 이용하는 Contents Management System(이하 CMS)를 만드느라 session을 이용했다. Session은 Redis에 저장하였고 session life time은 180분으로 설정하여 사용자가 180.. Framework/Laravel 2023. 11. 8. [웹개발자의 IOS 탐방기] 7. UserDefaults를 사용한 로컬기기에 알림 권한설정 값 저장하기 서론 UserDefaults는 간단한 데이터, 설정, 환경설정 등을 로컬에 저장할 때 사용되는 인터페이스다. UserDefaults에 저장하는 데이터는 키-값(key-value) 쌍으로 관리된다. 예를 들어, 여러 곳에서 사용되는 UserDefaults의 키를 하드코딩하면 오타가 발생할 위험이 있고, 키 관리가 어려워질 수 있기 때문에 이를 방지하기 위해 UserDefaultsKeys를 사용하면 각 키에 대한 참조를 한 곳에서 관리할 수 있으며, 이후 코드에서는 이러한 참조를 재사용함으로써 안전성과 유지보수성을 높일 수 있다. 본 포스팅에서는 UserDefaultsKeys를 사용하여 디바이스 로컬 기기에 설정한 값들을 저장 및 불러와서 기계가 꺼져도 설정 내용이 변하지 않게 SettingView.Swfi.. Framework/SwiftUI 2023. 11. 8. [웹개발자의 IOS 탐방기] 6. UserNotifications을 사용한 알림 설정 구현 서론 UserNotifications은 Swift에서 iOS와 macOS 운영 체제를 위한 로컬 및 원격 알림을 관리하고 처리하는 프레임워크로써, 이 프레임워크를 사용하면 앱이 백그라운드에서 실행되는 동안이나 전혀 실행되지 않을 때도 사용자에게 알림을 보낼 수 있다. 우리는 이 UserNotifications을 활용하여 알림 설정을 구현할 것이다. NotificationManager.swift 파일 생성 아래 코드는 UserNotifications 프레임워크를 사용하여 알림 권한을 관리하고, 앱의 알림 설정 상태를 확인하는 역할을 하는 NotificationManager라는 클래스를 정의하고 있다. 코드의 각 부분을 단계별로 나누어 설명하자면 필요한 모듈을 가져오기: Foundation: 기본적인 시스템.. Framework/SwiftUI 2023. 11. 8. [웹개발자의 IOS 탐방기] 5. ListView를 사용한 알림 화면 구현 서론 설정화면 우측 상단에 알림 아이콘을 넣고, 알림 아이콘을 클릭했을 때 알림 리스트들이 나오는 화면을 구현해보려 한다. 또한 각 아이템에 스와이프하여 삭제 기능까지 추가해보자. SettingView Hedaer 분리 기존 설정 화면에서 구현한 Header부분을 공용으로 사용하기 위해 HeaderView.Swift파일을 생성하여 공용 코드로 관리한다. 우측에 알림 아이콘을 넣어주고, 타이틀을 구분하기 위해 enum HeaderType을 지정해준다. 타입에 맞는 타이틀을 반환하는 함수도 함께 정의한다. enum HeaderType { case setting case notice } func headerTitle(for type: HeaderType) -> String { switch type { case.. Framework/SwiftUI 2023. 11. 8. [웹개발자의 IOS 탐방기] 4. VStack HStack을사용하여설정창 UI 구현 서론 IOS의 NavigationView와 NavigationLink로 이동된 화면에서는 IOS 자체적으로 지원하는 뒤로가기 버튼이 표시된다. 하지만 우리는 좀 더 친숙한 UI를 구현하기 위해 뒤로 가기 버튼부터 시작하여 설정창에 필요한 기능들을 아래와 구현하려고 한다. SwiftUI에서 화면을 그릴때는 주로 VStack과 HStack을 사용한다. 오마주는 당근마켓 설정화면을 기준으로 하였다. VStack, HStack이란? VStack: 수직으로 뷰들을 쌓아 준다. 위에서 아래로 UI 요소들을 일렬로 배열하고 싶을 때 사용한다. HStack: 수평으로 뷰들을 쌓아 준다. 왼쪽에서 오른쪽으로 UI 요소들을 일렬로 배열하고 싶을 때 쓰면 된다. 간단하게 말하면, VStack은 세로로, HStack은 가로로.. Framework/SwiftUI 2023. 11. 8. [웹개발자의 IOS 탐방기] 3. NavigationView 컨테이너뷰를 사용하여 설정창 띄우기 서론 NavigationView는 SwiftUI에서 네비게이션 기능을 제공하는 컨테이너 뷰로서, 주로 계층적 구조의 콘텐츠를 표시하거나 상세 정보를 보여줄 때 사용된다. 예를 들어, 목록에서 항목을 선택하면 해당 항목의 상세 정보 페이지로 이동하는 경우에 NavigationView와 함께 사용한다. 때문에 SwiftUI에서 제공하는 네비게이션 스택을 활용하여 화면 전환을 간편하게 구현할 수 있어서 NavigationView를 활용하여 설정창으로의 화면이동을 구현해보자. SettingView.swift 파일 생성 사용자 로그인/아웃 폼 부터 시작하여 푸쉬 알림 설정, 알림 내역 확인 등을 할 수 있는 Setting에 관련된 뷰 파일을 생성한다. 이 파일은 추후 목적에 맞게 디벨롭 해나갈 예정이다. // /.. Framework/SwiftUI 2023. 11. 8. [웹개발자의 IOS 탐방기] 2. 웹앱에 CustomToolbar 붙이기 서론 [1.Swift UI로 웹앱 만들기] 에서 간단히 만들어본 SwiftUI기반의 웹앱에 본격적으로 SwiftUI 기반의 네이티브 기능들을 하나씩 붙여보려고 한다. 그중 제일 먼저 시작할 Custom Toolbar를 만들어 볼 예정이다. 가장 많이 필요한 "이전","다음","홈","설정" 4개의 버튼을 만들고 그 중 "설정"을 제외한 나머지 기능을 먼저 구현한다. Constants.Swift 파일 생성 나는 전역에서 사용할 상수 혹은 변수를 관리할 때에 Constants 라는 명명을 자주 사용한다. 때문에 여기서도 전역에서 사용할 값을을 다루는 Constants.swift 파일을 생성해줬다. 파일 Source의 경우 Swift File을 선택해준다. 지금 당장은 공통으로 사용할 값이 모바일 도메인 값밖.. Framework/SwiftUI 2023. 11. 8. [웹개발자의 IOS 탐방기] 1. Swift UI로 웹앱 만들기 서론 아이폰의 운영체제(IPhone OS : 이하 IOS) 에서 동작하는 Application (이하 App)은 수만가지가 있다. 사람들이 가장 많이 사용하는 방식으로 SwiftUI를 활용하여 List View & Scroll View 등의 View단위로 구성된 Native App. Unitiy 및 SpriteKit, Unreal Engine 등의 게임 프레임워크 킷들을 사용하여 만드는 Game App 등이 여기에 해당된다. 그중에서 나는 모바일 웹을 앱에서 표현하는 통칭 웹앱에 네이티브 기능을 추가한 하이브리드 앱(Hybrid APP)을 만드려고 한다. SwiftUI를 사용한 웹앱 Project 만들기 웹앱을 만드는데 SwiftUI를 사용한다니 뭔가 어불성실이다. SwiftUI는 대부분 네이티브 앱에서.. Framework/SwiftUI 2023. 11. 8. Laravel에서 AWS CloudFront Invalidation 생성 및 조회하기 AWS SDK For PHP를 사용하여 CloudFrontClient 라이브러리로 Invalidation을 생성하려 했었는데 아래와 같은 문제가 생겼다. 1. 각 인스턴스 별 ACCESS KEY 및 ACCESS SECRET KEY를 발행하여. env에서 관리해야 한다 2. 발급받은 각각의 키를 분실하거나 공유하게 될 경우 발생하는 어마무시한 후처리 작업..(키 재발행 및 적용 등) 물론, AWS에서 자체적으로 제공하는 PHP를 위한 SDK가 있는데 굳이 CLI command reference를 사용하려는 이유는 1. AWS로 구성되어 있는 서비스지만 S3,CloudFront 작업 이외에 SDK를 사용하여 develop 해나갈 기능이 없다고 판단. 2. iam의 EC2인스턴스 서버별 작업 권한(S3접근, .. Framework/Laravel 2022. 12. 6. Spring Boot에서 MongoDB 인덱스 자동증가 (autoincrement) 기능 구현하기 mongoDB는 id를 String 형태의 문자열로 구성하고 있고, 이를 강제로 Long으로 바꾸어 사용할 수 있지만, 그럴 경우 MongoRepository의 findBy 관련 함수들을 많이 튜닝해줘야 하는 단점이 보였기에 별도로 Long 형태의 idx를 collection에 추가하여 사용하려 합니다. RDS에서 제공하는 auto increment기능이 noSQL에는 없기 때문에, 각 collection의 idx 마지막 값을 저장하는 별도의 collection을 구성하여 auto increment 기능을 구현하였습니다. 1. collection들의 마지막 idx를 가지고 있는 DatabaseSequence Class 생성하기 members collection의 Long idx의 마지막 값을 가지는 d.. Framework/Spring Boot 2022. 7. 20. Spring Boot 및 MongoDB를 사용하여 REST API 구축하기 - 회원 가입,탈퇴,조회 Spring Boot와 MongoDB를 공부하기 위해 사이드 프로젝트를 시작하려고 마음먹은 지 오래되었지만 막상 혼자서 공부하려니 너무 막연하고 주제도 못 정하고 있었습니다. 때문에 모든 사이트의 기본인 회원 관련 API부터 구현해보기로 마음먹고 첫발을 내딛습니다. [기술 스택] Gradle 7.4.2 Spring Boot 2.7.1 openJDK 18.0.1.1 mongoDB 4.4 (본문에서 다루는 모든 패키지는 com.kimmingyu.aws 하위에 선언하고 있기 때문에 본인의 프로젝트에 맞게 수정합니다.) 1. Gradle 필요 의존성 주입 아래 2개의 dependencies는 필수로 추가합니다. modelmapper를 사용하여 Object에서 Obejct로 값을 옮길때 번거롭게 getter, s.. Framework/Spring Boot 2022. 7. 19. [Model] 같은 형태에 대한 여러개의 테이블이 존재할 때, 1개의 Model로 사용하기 version 2.0 이전에 하나의 DB 스키마 아래에 테이블 앞에 글자만 다르고, 모든 형태가 일치(칼럼, 키, 색인 등 모든 게 일치)하는 경우에 Laravel Model에서 1개의 Model로 여러 테이블에 동적으로 바인딩해서 사용하는 방법을 포스팅 한 적이 있다. 다만 아쉬웠던 게 Laravel의 핵심 기술인 Eloquent ORM의 relastionships를 사용할 수 없는 단점이 존재하였고, 이 단점을 어떻게 해결할 수 있을지 고민하여 그 해답을 찾았다. [상황] [동일한 DB 스키마] - 상품 관련 테이블 : A_Products , B_Products, C_Products..... - 주문 관련 테이블 : A_Orders, B_Orders, C_Orders..... [이전 글] [Model] 같은 형태에 대한 .. Framework/Laravel 2022. 7. 12. 이전 1 2 3 4 5 다음