전체 글289 [CI/CD 구축] AWS EC2에 Docker를 활용한 Jenkins 파이프라인 구축 CI/CD를 구축하는 방법은 수백가지는 된다고 생각한다. 때문에 본인이 가지고있는 서버 환경이나 운영 되고있는 서비스에 따라 CI/CD 구축을 효율적으로 구축할 수 있어야 한다. 본 포스팅에서는 CI/CD에 대해, 그리고 Docker라는 것에 대해 막연하게 생각하고 있는 사람들에게 도움이 되고자 AWS EC2 인스턴스에 Docker를 활용하여 간단하게 CI/CD 구축하는 방법을 안내한다. 1. AWS EC2 인스턴스 생성 및 INOUND 포트 설정 AWS EC2 인스턴스는 요즘 클릭 몇번에 해결된다. 물론 생성 이후 보안규칙에서 INBOUND(EC2 인스턴스로 들어오는 데이터 혹은 요청에 대한 내용)에 대해 사전 지식이 필요하다. 나는 Ubuntu 22.04/t2.micro(프리티어)를 생성했다. EC.. Infrastructure/CICD 2024. 2. 7. [SQLD] SQL 기본 - 함수, 조인, 표준 조인 요약 1. 함수 (Function) 데이터베이스 관리에서 SQL 함수는 데이터를 조회, 변환, 계산하는 데 사용되는 강력한 도구중 하나이다. SQL 함수는 입력 값을 받아 처리하고, 결과를 반환하는 일련의 SQL 문을 포함한다. SQL 함수의 기본 SQL 함수는 크게 내장 함수(built-in function)와 사용자 정의 함수(user-defined function, UDF) 두 가지 유형으로 분류된다. 내장함수 데이터베이스 시스템에 사전에 정의된 함수로, 문자열 처리, 날짜 계산, 수학적 계산 등 다양한 기능을 제공한다. 사용자 정의 함수 (User-Defined-Function) 사용자가 특정 작업을 수행하기 위해 직접 작성한 함수로, 복잡한 로직이나 반복적인 작업을 처리하는 데 유용하다. 자주 사용하.. CapacityBuilding/SQLD 취득 2024. 2. 7. [SQLD] SQL 기본 - SELECT, WHERE, GROUP BY, HAVING, ORDER BY 요약 1. SELECT SELECT 문은 데이터베이스에서 특정 데이터를 조회할 때 사용되는 가장 기본적이고 중요한 명령어이다. 기본구조 SELECT column1, column2, ... FROM table_name; column1, column2, ...: 조회하고 싶은 컬럼들을 나열한다. table_name: 데이터를 조회할 테이블의 이름을 기입한다. SELECT 사용법 특정 컬럼 조회 학생 테이블의 이름과 성적 컬럼을 조회하는 방법 SELECT 이름, 성적 FROM 학생; 모든 컬럼 조회 테이블의 모든 컬럼을 조회할 때는 별표(*)를 사용한다. SELECT * FROM 학생; 중복 제거 (DISTINCT) DISTINCT 키워드를 사용하여 중복된 값 없이 특정 컬럼을 조회할 수 있다. SELECT DI.. CapacityBuilding/SQLD 취득 2024. 2. 6. [SQLD] 데이터 모델과 SQL - 관계/조인, 트랜잭션, Null속성, 본질 vs 인조 식별자 요약 1.관계와 조인의 이해 관계의 이해 관계의 이해'는 데이터 모델링의 핵심 개념 중 하나다. 데이터베이스의 관계는 데이터 간의 연관성을 나타내며, 이를 통해 데이터를 구조화하고, 효율적인 데이터 관리와 정확한 정보 추출이 가능해진다. 여기서 살펴볼 주요 개념은 엔티티 간의 관계, 관계의 종류, 그리고 관계를 표현하는 방법이다. 엔티티 간의 관계 엔티티(Entity) 데이터베이스에서 데이터 객체를 의미한다. 예를 들어, '고객', '주문', '제품' 등이 엔티티가 될 수 있다. 관계(Relationship) 엔티티들 사이의 연관성이다. 예를 들어, '고객'이 '주문'을 하는 관계이다. 관계의 종류 일대일 관계 (One-to-One) 하나의 엔티티 A가 하나의 엔티티 B와만 관계를 가질 때를 말한다. 예시로 .. CapacityBuilding/SQLD 취득 2024. 2. 5. [SQLD] 데이터 모델과 SQL - 정규화 요약 1. 정규화(Normalization)정규화는 데이터베이스 설계의 핵심 부분으로, 데이터를 체계적으로 구성하여 효율과 일관성을 높이는 과정이다. 정규화가 중요한 이유는, 잘못 구성된 데이터베이스는 중복된 데이터, 업데이트 시의 문제, 데이터 무결성 문제 등을 야기할 수 있기 때문이다. 정규화의 기본 원칙정규화의 기본적인 원칙은 중복을 최소화하고, 데이터 무결성을 유지하는 데 있다. 이를 통해 데이터를 더 작고, 관리하기 쉬운 부분으로 나누어 업데이트, 삭제, 추가 시 발생할 수 있는 문제들을 예방한다. 정규화 과정은 여러 단계로 나뉘어진다. 각 단계를 "정규형 (NF)"이라고 부른다. 데이터베이스 설계에 있어서 정규화는 매우 중요한 과정이다. 하지만 모든 것에는 장단점이 있듯이, 정규화도 장점과 함께 단.. CapacityBuilding/SQLD 취득 2024. 2. 2. [SQLD] 데이터 모델링의 이해 - 관계, 식별자 요약 1. 관계의 개념 관계의 정의 "엔터티의 인스턴스 사이의 논리적인 연관성으로서, 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태" 라고 할 수 있다. 관계(Relationship)는 엔터티와 엔터티 간 연관성을 표현하기 때문에 엔터티의 정의에 따라 영향을 받기도 하고, 속성 정의 및 관계 정의에 따라서도 다양하게 변할 수 있다. 관계의 패어링 관계는 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것(패어링)이고, 이것의 집합을 관계로 표현하는 것을 유의해야 한다. 따라서 개별 인스턴스가 각각 다른 종류의 관계를 가지고 있다면 두 엔터티 사이에 두 개 이상의 관계가 형성될 수 있다. 각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태를 관계 패어링(Relati.. CapacityBuilding/SQLD 취득 2024. 2. 1. [SQLD] 데이터 모델링의 이해 - 엔터티, 속성 요약 1. 엔터티의 개념 엔터티는 데이터 모델링에서 핵심적인 개념으로, 실체 또는 객체로 번역될 수 있으며, 실무에서는 주로 '엔터티'라는 용어를 사용한다. 다양한 정의가 있지만, 일반적으로 엔터티는 데이터베이스 내에서 구별 가능한 객체로서 사람, 장소, 물건, 사건, 개념 등과 같은 명사로 표현된다. 엔터티는 업무상 관리가 필요한 관심사에 해당하며, 정보를 저장하기 위한 것이다. 엔터티는 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것이다. 엔터티는 동질성을 지닌 인스턴스들의 집합이며, 각각의 인스턴스는 엔터티의 구체적인 예를 나타낸다. 예를 들어, ‘학생’ 엔터티는 학번, 이름, 이수학점 등의 속성을 가지며, 이러한 속성은 엔터티 인스턴스의 특성을 설명한다. 1. 엔터티는 사람, 장소, .. CapacityBuilding/SQLD 취득 2024. 1. 31. [SQLD] 데이터 모델링의 이해 - 데이터 모델링의 이해 요약 1. 모델링의 이해 모델링의 정의 사람, 사물, 개념 등에 의해 발생되는 다양한 현상을 표기법에 의해 규칙을 가지고 표기하는 것을 의미한다. 현실세계를 추상화, 단순화, 명확화하기 위해 일정한 표기법에 의해 표현하는 기법으로 정리할 수 있다. 모델링의 특징 추상화, 단순화, 명확화 3대 특징으로 요약 가능하다. 추상화 현실세계를 일정한 형식에 맞추어 표현을 한다는 의미로, 다양한 현상을 일정한 양식인 표기법에 의해 표현한다는 것이다. 단순화 복잡한 현실세계의 약속된 규약에 의해 제한된 표기법이나 언어로 표혀하여 쉽게 이해할 수 있또록 하는 개념을 의미한다. 명확화 누구나 이해하기 쉽게 하기 위해 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술하는 것을 의미한다. 2. 데이터 모델 기본 개념의 이해.. CapacityBuilding/SQLD 취득 2024. 1. 30. 활용하면 좋은 PHP 매직 메소드 서론 PHP에서 매직 메소드는 특정 상황에서 자동으로 호출되는 메소드로, 이름은 항상 두 개의 밑줄로 시작된다(__). 이들은 객체 지향 프로그래밍에서 다양한 상황에 대응하거나, 코드를 보다 유연하고 읽기 쉽게 만드는 데 도움을 준다. 본 포스팅에서는 PHP에서 제공되는 매직 메소드를 예시를 들며 소개한다. __construct() 객체가 생성될 때 자동으로 호출되는 생성자 메소드로 주로 초기화 작업에 주로 사용된다. class Person { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } $person = new Person("John", 30).. Server Language/PHP 2024. 1. 2. IOS WKWebView Pull Down To Reload 구현하기 서론 예전 스타일의 Toolbar 디자인에는 새로고침 버튼이 존재했지만, 'Pull Down To Reload' 라 불리는 스크롤을 내려서 페이지를 새로고침하는 이 기능은 사용자에게 매우 직관적이다. 대부분의 스마트폰 사용자들은 이제 이 동작에 익숙하며, 콘텐츠를 새로 고침하고 싶을 때 자연스럽게 화면을 아래로 당기는 경향이 있다. 때문에 최근 UI/UX 측면에서 Toolbar에 존재하는 새로고침 버튼을 없애고 Pull Down To Reload를 도입하는 Application이 많아졌기에 한번 구현해보자. 'pull down to refresh' 기능을 사용하는 주된 이유와 장점 첫 번째 - 직관적인 사용자 경험: 위에서 설명한 것과 같이 이 기능은 사용자에게 매우 직관적이다. 대부분의 스마트폰 사용자.. Server Language/Swift 2023. 11. 30. React.js를 사용해서 낱말 맞추기 게임 만들기 서론 웹 페이지의 중요 키워드를 활용하여 페이지 내에 소규모 게임을 통합함으로써 사용자 참여를 크게 높일 수 있지 않을까? 바쁜 일정에서 잠시 벗어나 스트레스를 해소하고자 하는 직장인들이 이 게임을 통해 웹 서비스에 끌려올 수 있지 않을까? 이러한 생각에서 시작된 낱말 맞추기 게임을 간단하면서도 사용자의 머무름을 늘리는 효과적인 웹페이지 추가 요소로 개발해보자. 사전준비 낱말의 정의를 구하기 위해 Naver Search API(이하 NSA)를 react에서 바로 호출해도 무방하지만 CORS 이슈를 신경써야 하고, 매 번 API를 호출하기에는 하루에 정해진 호출량이 존재하기 때문에 나는 Naver Search API를 다루는 Server API를 간단하게 만들어서 사용했다. 어떠한 언어를 사용해도 무방하지.. Client Language/React.js 2023. 11. 28. NAVER Search API를 활용한 단어 백과사전 검색 API 만들기 서론 최근 팀장님께 조언을 들은겸, 게임 하나를 간단하게 만들어 보려고 한다. 특정 페이지의 키워드를 기준으로 단어를 맞추는 게임을 react로 만드려고 하는데, 단어를 맞추기 앞서 단어의 정의 및 사전적 의미를 구해야 하기 때문에 관련하여 NAVER에서 제공하는 OPEN API 중 하나, Search API를 활용하여 네이버 백과사전 검색 데이터를 받아오는 API를 라라벨로 구현해 보자. NAVER Developers 애플리케이션 등록 아래 공식 페이지에서 내 애플리케이션 등록을 통해 "검색" 애플리케이션을 만든 후 Client ID, Client Secret 두 가지 Key를 확보한다. 애플리케이션 - NAVER Developers developers.naver.com Laravel Route 설정 .. Framework/Laravel 2023. 11. 27. [웹개발자의 IOS 탐방기] 8. SwiftUI 웹앱에 FCM Push 알림 구현하기 서론 Firebase Cloud Messaging (FCM)은 Google에서 제공하는 클라우드 기반의 메시징 솔루션이다. 이를 통해 개발자들은 Android, iOS, 웹 애플리케이션에 대한 푸시 알림을 보낼 수 있게 되었다. 본 포스팅에서는 간략하게 FCM에 대해 알아보고, IOS 앱에서 FCM Push 알림을 구현해보자. FCM(Firebase Cloud Messaging) 기능 FCM은 앱 사용자와의 실시간 상호 작용을 가능하게 하여, 사용자 참여도를 높이고 중요한 정보를 신속하게 전달하는 데 효과적인 도구로 활용된다. 아래에 간략하게 FCM의 지원 기능 및 장점에 대해 요약해보았다. 크로스 플랫폼 메시징: FCM은 Android, iOS, 웹 애플리케이션에 대한 푸시 알림을 지원하여, 하나의 서.. Framework/SwiftUI 2023. 11. 24. Laravel로 JWT 기반 API 구현 방법 서론 API를 만들때 JWT(Json Web Token)을 사용하는 이유가 무엇일까? 이 이유를 이해하기 위해서는, API의 특성과 인증 및 권한부여의 필요성을 알고있어야 한다. 이러한 이유들을 알아보고, 간단하게 JWT를 사용해서 API를 구현하는 방법을 알아본다. API 개발에 JWT를 사용하는 이유 RESTful API는 상태 비저장(stateless)을 원칙으로 한다. 이는 서버가 클라이언트의 상태 정보를 유지하지 않아야 함을 의미하는데, JWT는 이 원칙을 준수한다. 토큰은 클라이언트에 의해 저장되며 서버는 상태 정보를 유지할 필요가 없어진다. 서버가 사용자 상태를 유지하지 않기 때문에, 요청은 어느 서버에서나 처리될 수 있다. 이는 로드 밸런싱과 서비스의 확장성에 유리해진다. 그리고 JWT는 .. Framework/Laravel 2023. 11. 23. 이전 1 2 3 4 5 6 7 ··· 21 다음