본문 바로가기

전체 글46

HTML CSS 속성 target="_blank"는 HTML에서 링크( 요소)를 클릭했을 때 새 창이나 새 탭에서 링크된 페이지를 열도록 지정하는 속성입니다. 이 속성을 사용하면 링크된 페이지가 현재 창이 아닌 새로운 브라우저 창이나 탭에서 열립니다. 예를 들어: htmlCopy code 바로가기 이렇게 하면 "바로가기"라는 링크를 클릭했을 때, https://www.example.com 페이지가 새로운 창이나 탭에서 열립니다. _blank 값은 기본적으로 지원되는 값 중 하나이며, 다른 값을 사용할 수도 있습니다. 일반적으로는 다음과 같은 값들을 사용합니다: _self: 현재 창에서 링크를 엽니다. _parent: 부모 프레임에서 링크를 엽니다. _top: 현재 창의 최상위 프레임에서 링크를 엽니다. target="_bla.. 2024. 3. 8.
GitLab(깃랩)과 GitHub(깃허브)의 차이점 GitLab(깃랩)과 GitHub(깃허브)의 차이점 소스코드 저장소 호스팅의 양대산맥인 깃허브와 깃랩은 그 기술적 기반을 '깃(Git)'으로 삼는다는 점에서 큰 차이를 보이지 않습니다. 기본 기능은 같지만 서비스를 만든 철학과 초점에 차이를 갖기 때문에, 사용자는 목적과 업무 체계를 고려해 적합한 서비스를 골라야 합니다. 지난 시간에 vcs(버전관리시스템)인 svn과 git 의 차이점도 확인했는데요! 궁금하신 분들은 이 포스팅을 읽고 와주세요 2023.01.16 - [개발자 세릴리/비전공자 한 입 지식] - [지식] VCS란? Git과 SVN의 차이점을 알아보자! [지식] VCS란? Git과 SVN의 차이점을 알아보자! VCS란? Git과 SVN의 차이점을 알아보자! VCS 는 Version Contro.. 2024. 3. 8.
Git Git git 개념 및 명령어 정리 개인 개발을 넘어, 공동 개발에서 효율적인 코드 형상 관리를 하기 위함. Git 영역 (1) Working Directory (Local) : 개인 코드 작성 (2) Staging 영역 :​ git add 를 통해서 수정된 코드를 올리는 영역 (3) Repository : ​ git commit 을 통해서 최종 수정본을 제출 Git 작업 플로우 먼저 터미널에 git을 설치합니다. linux (Ubuntu) 기준 Copy $ sudo apt install git-all (1) 저장소(Repository) 생성 원하는 폴더 들어간 후 Copy $ git init 또는 기존 github에 있는 저장소를 내 로컬로 복제할 수도 있습니다. Copy $ git clone (git.. 2024. 3. 8.
FastAPI에 대해 간단히 알아보기 오늘은 fastAPI에 대해 알아보도록 하겠다. 1. 개요 FastAPI의 이론적인 개념은 다음과 같다. fastAPI란? 파이썬 3.6부터 제공되는 트랜디하고 높은 성능을 가진 파이썬 프레임워크 위에서 알 수 있듯이 FastAPI는 파이썬 프레임워크이다. 우리가 알고 있는 기존에 가장 대중적으로 사용되고 있던 파이썬 프레임워크는 Django, Flask이다. 비교적 가벼운 웹개발이라면 Flask를 사용했고 조금 더 볼륨있는 프로젝트라면 Django를 사용했다. 하지만, 이 쌍둥이 타워 사이에 "조작법은 단순하면서도 성능적으로는 우세함을 보장한다"는 FastAPI라는 녀석이 비집고 들어온 것이다. FastAPI의 특징에 대해 정리해본다면 아래와 같다. FastAPI 특징 API 문서 자동 생성 (Swag.. 2024. 3. 5.
CPU란? CDN이란 무엇인가요? 중앙 처리 장치(CPU)는 서버의 핵심 계산 장치인 하드웨어 구성 요소입니다. 서버 및 기타 스마트 장치는 데이터를 디지털 신호로 변환하고 이에 대한 수학적 연산을 수행합니다. CPU는 신호를 처리하고 컴퓨팅을 가능하게 하는 기본 구성 요소입니다. 이는 모든 컴퓨팅 장치의 두뇌 역할을 합니다. CPU는 메모리에서 명령을 가져와서 필요한 작업을 수행하고 출력을 다시 메모리로 보냅니다. 또한 운영 체제 및 애플리케이션을 실행하는 데 필요한 모든 컴퓨팅 작업을 처리합니다. 시간이 흐르면서 CPU 기술은 어떻게 발전했나요? 초기의 컴퓨터는 데이터 처리에 진공관을 사용했습니다. ENIAC 및 UNIVAC과 같은 기계는 크고 부피가 커서 많은 전력을 소비하고 상당한 열을 발생시켰습니다. 19.. 2024. 3. 4.
JSP란 JSP 란 JavaServer Pages 의 약자이며 HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구이다. (Java 언어를 기반으로 하는 Server Side 스크립트 언어) 더보기 닫기 스크립트(Script) 언어란 소스 코드를 컴파일(Compile)하지 않고도 실행할 수 있는 프로그래밍 언어를 말한다. 예를 들어 C나 비주얼베이직, 자바같은 경우는 작성한 소스를 컴파일러를 통해 기계어 코드로 변경해야 사용자가 실행할수 있는 실행 파일이 얻어지는데 비해 스크립트 언어는 별도의 컴파일 없이 내장된 번역기에 의해 번역 되므로 바로 실행 할 수 있다. 스크립트 언어는 소스를 작성한 후 컴파일 과정 없이 바로 실행하여 결과를 확인할 수 있다는 장점이 있는 반면에 번역 과정을 .. 2024. 3. 4.
Django 와 Flask 의 차이 ​ ​ Django와 Flask는 모두 파이썬으로 작성된 웹 프레임워크로, 웹 애플리케이션 개발을 쉽게 할 수 있도록 도와주는 도구입니다. 하지만 두 프레임워크는 목표와 사용법에서 일부 차이가 있습니다. 아래에서 각각의 특징을 살펴보겠습니다. ​ ​ ​ Django 완전한 웹 프레임워크: Django는 강력한 기능을 가진 완전한 웹 프레임워크입니다. 데이터베이스 모델링, URL 라우팅, 템플릿 엔진, 폼 처리 등 다양한 기능을 내장하고 있습니다. 높은 수준의 추상화: Django는 많은 작업을 추상화하여 개발자가 더 쉽게 애플리케이션을 만들 수 있도록 도와줍니다. 이로 인해 빠른 개발이 가능하지만, 더 많은 제어를 필요로 하는 프로젝트의 경우 제한적일 수 있습니다. Admin 기능 제공: Django는 .. 2024. 3. 4.
Django란? (파이썬 웹 프레임워크) Django란 무엇인가요? Django는 웹 애플리케이션을 효율적으로 빠르게 개발하는 데 사용할 수 있는 소프트웨어입니다. 대부분의 웹 애플리케이션에는 인증, 데이터베이스의 정보 검색, 쿠키 관리 등의 몇 가지 공통적인 기능이 있습니다. 개발자는 작성하는 모든 웹 앱에 유사한 기능을 코딩해야 합니다. Django는 다양한 기능을 웹 애플리케이션 프레임워크라고 하는 재사용 가능한 모듈의 대규모 컬렉션으로 그룹화하여 작업을 더 쉽게 수행할 수 있도록 합니다. 개발자는 Django 웹 프레임워크를 사용하여 코드를 보다 효율적으로 구성하고 작성하며 웹 개발 시간을 크게 단축합니다. 웹 개발자가 Django를 선택하는 이유는 무엇일까요? 시장에는 여러 웹 프레임워크가 있습니다. Django는 Python 언어로 .. 2024. 3. 4.
MySQL vs MariaDB 서론 데이터베이스에는 RDBMS와 NoSQL이 있다. RDBMS의 대표적인 예로는 MySQL이 있고, NoSQL의 대표적인 예로는 MongoDB가 있다. 그런데 나는 처음 데이터베이스를 다룰 때 mariaDB를 사용했다. MySQL과 유사하다는 것만 알고 있었기에 MySQL과 MariaDB의 차이에 대한 질문에 어떤 답변을 해야할 지 정리해보았다. MySQL 1990년대 중반에 개발. 시장에서 사용할 수 있는 오픈 DB. SQL 언어를 사용. 단순 쿼리 처리 성능이 압도적으로 우수하고 오랜 시간 동안 사용되어온만큼 성능이 꾸준이 개선되었고 신뢰성이 높음. 오픈 소스이며, 다중 사용자와 다중 스레드를 지원하고 있어 C/C++, Java 등 여러 프로그래밍 언어를 위한 다양한 API를 제공. 윈도우, 리눅스.. 2024. 3. 4.
이클립스 vs 인텔리제이 비교 안전성 Eclipse는 Plugin에 대한 호환성 인증을 별도로 하지 않기에 Plugin 설치시 의존성 및 버전문제로 충돌 문제가 종종 발생, IntelliJ IDEA는 필수 Plugin들은 내장되어 있으며, 그 외 Plugin들에 대해서도 JetBrains에서 보증을 하기에 관련 문제 전무함 Eclipse는 Maven 관련하여 변경사항이 있을 때 다양한 오류들이 종종 발생하는데 소스 사이즈가 크면 클수록 해결하는데 시간이 제법 소요, 그 외에도 특정 상황에서 강제로 종료되거나 Freezing(멈춤) 현상이 종종 발생하는데 IntelliJ IDEA에서는 관련 현상 전무함 Eclipse도 OpenJDK를 지원하는데, NewPlatform 서비스를 11버전으로 구동시 JVM 충돌이 자주 발생함, Intell.. 2024. 2. 19.
파이썬(PYTHON) 바로 알기 - 특징, 장점, 활용 사례 파이썬(Python) 바로 알기 – 특징, 장점, 활용 사례 Python(이하 파이썬)은 직관적이고 간결한 문법으로, 프로그래머들은 물론 비전공자들 사이에서도 최근 가장 주목받는 언어입니다. 간단한 유틸리티 제작을 넘어 웹 프로그래밍과 4차 산업 혁명의 중심인 머신러닝, 사물 인터넷(IoT)과 데이터 분석 등 다양한 분야에 활용되며 최신 트렌드에 가장 맞닿아 있기 때문입니다. 아래에서는 파이썬의 특징 및 장점, 그리고 활용 사례에 대해 알아보도록 하겠습니다. 파이썬 소개 파이썬은 1991년 귀도 반 로섬(Guido van Rossum)이라는 프로그래머에 의해 개발된 언어로, 가독성이 높고 쉬운 문법 덕택에 다른 프로그래밍 언어보다 빠른 습득이 가능하다는 특징이 있습니다. 그 덕에 프로그래밍을 전공하지 않.. 2024. 2. 18.
롬복 lombok 이란? Lombok 이란 Java 라이브러리로 반복되는 getter, setter, toString .. 등의 반복 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리 Java에서 보통 model 클래스나 Entity 같은 도메인 클래스 등에는 수많은 멤버변수가 있고 이에 대응되는 getter, setter 와 toString() 메서드, 때에따라 멤버변수에 따른 여러개의 생성자를 만들어주게 되는데 거의 대부분 이클립스나 인텔리제이같은 IDE에서 자동생성 기능이 있지만 이 역시도 번거로운 작업이 아닐 수 없다. 뿐만 아니라 코드 자체가 반복 소스코드로 인해 복잡해지게 된다. Lombok은 여러가지 @어노테이션을 제공하고 이를 기반으로 반복 소스코드를 컴파일 과정에서 생성해주는 방식으로 동작하는 라이브러리이다... 2024. 2. 18.
JSON(JavaScript Object Notation) 정의, 구조, 장단점/JSON을 사용하는 이유 JSON (JavaScript Object Notation) 이란 - JSON이란 경량의 데이터 교환 형식으로 프로그래밍 언어가 아닌 단순히 데이터를 표시하는 표현 방법, 데이터 포맷입니다. 자바스크립트 (Javascript)에서 객체를 만들 때 사용하는 표현식을 의미합니다. Ajax로 서버와 통신하며 데이터를 주고 받을 때 데이터 교환을 쉽게 하기 위해 JSON을 사용합니다. JSON (JavaScript Object Notation)의 구조 - JSON의 자료형은 string, number, true, false, null, object, array 가 올 수 있습니다. 기본적으로 key : value 형태의 구조를 가지고 있습니다. 중괄호 {} 로 감싸게 되며, 이는 객체(Object)가 나올 것을.. 2024. 2. 18.
Spring Security를 이용한 password 암호화 ❖ Spring Security를 이용한 password 암호화 ▪ Spring Security에서 제공하는 BCryptPasswordEncoder 클래스를 이용해서 password를 암호화할 수 있다. ❖ Spring Security 환경 설정 1. pom.xml 파일에 spring security 의존 라이브러리를 추가한다. 2. web.xml 파일에 spring security 설정 파일(spring-security.xml)을 등록한다. 3. spring security설정 파일(spring-security.xml)을 설정한다. 1. pom.xml 파일에 spring security 의존 라이브러리를 추가한다. 2. web.xml 파일에 spring security 설정 파일(spring-secur.. 2024. 2. 18.
@RequestBody / @ResponseBody 어노테이션 이란? 스프링에서 비동기 처리를 하는 경우 @RequestBody , @ResponseBody를 사용한다. 비동기 처리를 위해 이 어노테이션들은 어떻게 작동할까? 클라이언트와 서버의 비동기 통신 클라이언트에서 서버로 통신하는 메시지를 요청(request) 메시지라고 하며, 서버에서 클라이언트로 통신하는 메시지를 응답(response) 메시지라고 한다. 웹에서 화면전환(새로고침) 없이 이루어지는 동작들은 대부분 비동기 통신으로 이루어진다. 비동기통신을 하기위해서는 클라이언트에서 서버로 요청 메세지를 보낼 때, 본문에 데이터를 담아서 보내야 하고, 서버에서 클라이언트로 응답을 보낼때에도 본문에 데이터를 담아서 보내야 한다. 이 본문이 바로 body 이다. 즉, 요청본문 requestBody, 응답본문 respons.. 2024. 2. 18.
Spring Security란? 스프링에서 제공하는 공식 문서 ➡️ https://spring.io/projects/spring-security 스프링 시큐리티란 ? 스프링 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크 🔐 보안 언어 정리 이름설명 인증 (Authenticate) 접근하려는 유저가 누구인지 확인하는 절차 EX) 회원가입하고 로그인 인가 (Authorization) 인증된 사용자에 대해서 권한을 확인하고 허락하는 것 접근 주체 (Principal) 보호된 대상에 접근하는 유저 비밀번호 (Credential) 대상에 접근하는 유저의 비밀번호 인증과 인가에 대해서 예시를 들어보자면 한 사용자가 velog 에 글을 작성하기 위해서 로그인을 했다 ➡️ 인증 로그인 한 사용자가 신나게 글을 .. 2024. 2. 18.
[빌드 도구] Maven과 Gradle의 차이점 이번에는 Java 빌드 도구인 Maven과 Gradle의 차이점에 대해 정리할 것이다. [ 목적 ] 최근까지 빌드 도구를 Maven만 사용하였고, 최근에 Gradle을 사용하게 되었다. 단순히 Gradle이 더 최신 빌드 도구라는 것만 알고 자세한 차이점을 몰라서 이 2개의 빌드 도구의 정의와 차이점을 알기 위해 정리하게 되었다. Java 빌드 도구 Maven과 Gradle 차이점 빌드 도구(Build Tool) 이란? Maven과 Gradle를 설명하기 전에 빌드 도구(Build Tool)에 대해 간단하게 정리할 것이다. 빌드 도구(Build Tool)이란 소프트웨어 개발에 있어서 소스 코드를 실행 가능한 애플리케이션으로 만들어주는도구를 뜻한다. 빌드 과정을 자동화하여 관리하는 기능을 하기에 빌드 관리.. 2024. 2. 16.
ORM의 개념, JPA와 MyBatis 차이 데이터들이 프로그램이 종료되어도 사라지지 않고 어떤 곳에 저장되는 개념을 영속성(Persistence) 이라고 한다. 자바에서는 데이터의 영속성을 위한 JDBC를 지원해주는데, 이는 매핑 작업을 개발자가 일일히 수행해야 하는 번거로움이 있다. SQL Mapper와 ORM은 개발자가 직접 JDBC Programming을 하지 않도록 기능을 제공해주는 Persistence Framework 종류이다. 기존 JDBC 만의 사용으로 쿼리문을 만들어 요청하는 과정은 쿼리문이 조금만 길어져도 관리가 힘들거 번거롭다. 따라서 JPA와 MyBatis 라이브러리를 사용하여 문제를 해결할 수 있다. > SQL Mapper Object와 SQL의 필드를 매핑하여 데이터를 객체화 하는 기술 객체와 테이블 간의 관계를 매핑하는.. 2024. 2. 16.
spring 과 springBoot의 차이점 springBoot 장점: spring에 비해 라이브러리 관리를 쉽게 할수있음(환경설정이 더 쉬워진건 아님) Spring과 Spring Boot는 모두 스프링 프레임워크를 기반으로 한 자바 웹 개발 프레임워크입니다. 둘 간에는 몇 가지 차이점이 있습니다. Spring은 스프링 프레임워크의 핵심 모듈을 모아서 만든 프레임워크입니다. Spring에서는 개발자가 직접 설정 파일을 작성하여 스프링 컨테이너를 구성하고, 필요한 빈 객체를 등록하고, 빈 객체 간의 의존성을 설정해야 합니다. Spring은 특정한 구성을 위해 추가적인 라이브러리와 설정이 필요합니다. 반면, Spring Boot는 스프링 프레임워크를 보다 쉽게 사용할 수 있도록 만든 프레임워크입니다. Spring Boot에서는 개발자가 설정 파일을 작.. 2024. 2. 16.
API란? API의 정의와 종류 그리고 장단점 우리가 거진 매일 사용하는 애플리케이션의 다양한 기능들(위치 서비스에서 SMS, 금융, 쇼핑에 이르기까지)이 현재 대부분 API를 연동하여 운영되는 것이 사실이다. API는 21세기의 데이터의 최신화와 더욱 다양해진 애플리케이션의 필요에 대응하여 아주 많이 쓰이고 있지만 UI(사용자 인터페이스)가 없어 추상적인 관계로 그 개념을 이해하기가 약간 힘들 수 있으므로 정리해보자. API의 정의와 short history, 예제 API의 종류 API의 장단점 1. API의 정의와 short history, 예제 API는 “Application Programming Interface”의 준말. 풀이를 하자면, 여러 프로그램들과 데이터베이스, 그리고 기능들의 상호 통신 방법을 규정하고 도와주는 매개체이다. API는.. 2024. 2. 7.
Oracle과 MySQL의 차이점 📌 1. Oracle vs MySQL 📎 Intro: DB(Data Base)란? 여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합이다. 자료를 구조화하여 저장함으로써 자료 검색과 갱신의 효율을 높일 수 있다. 📎 Oracle과 MySQL 백엔드를 배우다보면 DB는 반드시 배워야하는 존재이다. 데이터를 관리하는 DB는 여러가지 종류의 프로그램이 있는데, 그중에서도 Oracle과 MySQL을 가장 많이 사용한다. 특히 돈이 적거나 중소기업들은 대체로 MySQL을 선호하고, 충분한 예산과 복잡한 비즈니스 요구를 수행해야 하는 큰 프로젝트를 주로 수행하는 대기업은 대체로 Oracle을 선호한다. 실제로 나도 학원에서 배울때, MySQL→Oracle순으로 DB를 배울만큼 두개의 프로그램.. 2024. 2. 7.
CRUD란? 개발자 영어 단어장 #2 C Create 생성 POST R Read 조회/읽다 GET U Update 수정/갱신 PUT or PATCH D Delete 삭제 DELETE “CRUD”는 대부분의 애플리케이션의 기본적인 데이터 처리 기능들 네가지, Create(생성), Read(조회), Update(갱신), Delete(삭제)의 준말. HTTP request method로 풀이를 하자면 C = Create | POST R = Read | GET U = Update | PUT or PATCH D = Dlete | DELETE 2024. 2. 6.
눈앞에 닥친 SaaS 시대, 근데 SaaS가 도대체 뭐지? 1년 넘게 이어지고 있는 코로나19 사태로 인해 비대면 사업의 핵심 기술인 클라우드에 대한 수요가 높아지고 있습니다. ​ 지메일(Gmail), 네이버 클라우드, 드롭박스 등 현재 우리가 손쉽게 사용하는 서비스들은 모두 클라우드 서비스라고 불립니다. ​ ☁️클라우드 서비스에 대해 궁금하다면?☁️ 이런 클라우드 서비스의 등장으로 기존에 기업들이 관리해야 했던 영역들이 서비스로 제공되면서, 효율적이고 편리한 기업 운영이 가능해졌습니다. ​ 클라우드 서비스는 흔히 IaaS, PaaS, SaaS로 구성되어 있는데 처음에 언급한 서비스 모두 SaaS​에 해당됩니다. ​ * IaaS와 PaaS에 대한 내용은 여기를 참고해주세요. ​ 국내 대기업뿐만 아니라 정부에서도 SaaS 육성을 주요 정책으로 내세우고 있을 정도로.. 2024. 2. 4.
리눅스 기본 명령어 모음 | Linux 의미, 기능, 작성 예시 백엔드 개발에 관심있는 분들이라면 오픈 소스 운영체제인 리눅스(Linux)에 대해 들어보셨을 텐데요. 오늘은 리눅스가 무엇인지, 많은 기업에서 리눅스를 사용하는 이유는 무엇인지, 리눅스 기본 명령어에는 어떤 것들이 있는지 살펴보겠습니다. 리눅스란? 🐧 컴퓨터, 스마트폰, 가전제품 등 모든 전자 기기는 하드웨어와 소프트웨어로 구분할 수 있습니다. 하드웨어는 눈에 보이는 전자기기의 물리적인 모든 것을 의미하며, 소프트웨어는 특정 목적을 이루기 위해 컴퓨터에 내리는 명령들을 모아놓은 것을 의미합니다. 사용자가 소프트웨어(일반적인 애플리케이션으로서의 소프트웨어)를 사용할 때, 소프트웨어는 컴퓨터의 CPU, RAM 등의 하드웨어를 사용해서 사용자가 요구하는 동작을 수행하는데, 이때, 운영체제가 소프트웨어에 필요한.. 2024. 2. 4.
기본적인 7가지 데이터 구조들 데이터 구조로 : 대규모 데이터들을 관리 및 활용에 용이하게 한다. 데이터베이스에서 원하는 데이터를 찾을 수 있게 한다. 사용자가 원하는 또는 프로그램이 필요한 맞춤 알고리즘을 설계 할 수 있다. 사용자들의 여러 요청을 한번에 처리 할 수 있다. 데이터 처리 과정을 단순화하면서 처리 속도를 향상 할 수 있다. 데이터 구조 시간 복잡도 모음: Complexity_Cheatsheet.pdf 기본적인 7가지 데이터 구조들 배열 (Array) 배열은 가장 기본적인 데이터 구조다. 배열은 생성시 설정된 셀의 수가 고정되고, 각 셀에는 인덱스 번호가 부여된다.배열을 활용 시 부여된 인덱스를 통해 해당 셀 안에 있는 데이터에 접근 할 수 있다. 시간 복잡도 장점 바로 만들어서 활용하기가 쉽다 더 복잡한 자료 구조의 .. 2024. 1. 25.
@ Annotation이란? Annotation이란? 사전적 의미로는 주석이라는 뜻이다. 자바에서 Annotation은 코드 사이에 주석처럼 쓰이며 특별한 의미, 기능을 수행하도록 하는 기술이다. - 프로그램에게 추가적인 정보를 제공해주는 메타데이터라고 볼 수 있다. - meta data : 데이터를 위한 데이터 애노테이션 사용 순서 애노테이션을 정의한다. 클래스에 애노테이션을 배치한다. 코드가 실행되는 중에 Reflection을 이용하여 추가 정보를 획득하여 기능을 실시한다. Reflection이란? Reflection이란 프로그램이 실행 중에 자신의 구조와 동작을 검사하고, 조사하고, 수정하는 것이다. Reflection은 프로그래머가 데이터를 보여주고, 다른 포맷의 데이터를 처리하고, 통신을 위해 serialization(직렬.. 2024. 1. 25.
ORM 프레임워크(Oject-Relational-Mapping) 란? ORM은 데이터베이스와 객체지향 프로그래밍 언어간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다. 객체 관계 매핑이라고도 한다. 객체지향 언어에서 사용할 수 있는 '가상' 객체 데이터베이스를 구축하는 방법이다. ORM(Object-realtional Mapping)을 단순하게 표현하면 객체와 관계와의 설정이라 할 수 있다. ORM에서 말하는 객체(Object)의 의미는 우리가 흔히 알고 있는 OOP(Object Oriented Programming)의 객체를 의미한다는 것을 쉽게 유추할 수 있다. ORM 개념이 나온 이유는 코딩의 반복적인 부분을 줄일 수 있고 SQL의 의존적인 코딩에서 벗어나 생산적인 코딩이 가능하며 유지보수가 편리하기 때문이라 할 수 있다. ORM프레임워크 장점 객체 지향적인 .. 2024. 1. 24.
OAuth 2.0 개념과 동작원리 OAuth 등장 배경 우리의 서비스가 사용자를 대신하여 구글의 캘린더에 일정을 추가하거나, 페이스북, 트위터에 글을 남기는 기능을 만들 수 있을 것 이다. 이때, 가장 쉽게 이 기능을 구현하는 방법은 사용자로부터 구글, 페이스북, 트위터의 ID, Password 를 직접 제공받아 우리의 서비스에 저장하고 활용하는 방법이다. 타사의 ID/PW를 직접 전달받는 위험한 방법 하지만 이런 방법이 안전할까? 사용자들은 처음보는 우리 서비스를 신뢰하고 자신의 구글 계정 정보를 맡길 수 있을까? 사실 현재의 관점으로 바라보면 미친짓이나 다름없다. 심지어 일반적으로 사용자들은 많은 웹사이트에서 동일한 ID, Password 를 사용하기 때문에 이것이 유출된다면 우리의 사이트에서 피해가 발생하는 것으로만 끝나지 않을 것.. 2024. 1. 24.
🔑 Session 과 JWT(JSON Web Token) 🔑 Session 과 JWT(JSON Web Token) 👉 세션에 대하여 좀 더 자세히 알고 싶다면 아래의 링크를 클릭하세요. https://develop-const.tistory.com/13 쿠키 vs 세션(cookie vs session) 공통점은 무엇일까? 쿠키와 세션은 모두 http 프로토콜에서 클라이언트와 서버가 상태를 유지하기 위해 사용되는 것입니다. 쿠키와 세션에 대해 알아보자 1. 쿠키 🍪 쿠키는 클라이언트 측에 저 develop-const.tistory.com Session과 JWT(Json Web Token)는 둘 다 인증(Authentication) 및 인가(Authorization)에 사용되는 방식입니다. 하지만 두 방식은 사용 목적, 작동 방식, 장단점 등에서 차이가 있습니다. .. 2024. 1. 23.
인터페이스란? 인터페이스(interface)란? 자식 클래스가 여러 부모 클래스를 상속받을 수 있다면, 다양한 동작을 수행할 수 있다는 장점을 가지게 될 것입니다. 하지만 클래스를 이용하여 다중 상속을 할 경우 메소드 출처의 모호성 등 여러 가지 문제가 발생할 수 있어 자바에서는 클래스를 통한 다중 상속은 지원하지 않습니다. 하지만 다중 상속의 이점을 버릴 수는 없기에 자바에서는 인터페이스라는 것을 통해 다중 상속을 지원하고 있습니다. 인터페이스(interface)란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미합니다. 자바에서 추상 클래스는 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함할 수 있습니다. 하지만 인터페이스(.. 2024. 1. 17.