오늘은 웹사이트에 대해 자주 듣게 되는 두 가지 용어인 HTTP와 HTTPS의 차이점을 알아보겠습니다.이 두 프로토콜은 우리 일상에서 웹사이트에 접속할 때 사용되며, 웹 페이지의 보안과 신뢰성에 큰 영향을 미칩니다.각각의 개념과 그 차이점을 정리해 보도록 하겠습니다. 🫡1. HTTP와 HTTPS의 기본 개념HTTP(Hypertext Transfer Protocol)는 웹 서버와 클라이언트 간의 데이터 전송을 위한 프로토콜입니다. 사용자가 웹사이트에 접속하기 위해 브라우저에 URL을 입력하면, HTTP를 통해 요청이 서버로 전송됩니다. 그러나 HTTP는 보안 기능이 없는 평문 텍스트 방식으로 데이터를 전송하기 때문에 외부 공격자에게 쉽게 노출될 수 있습니다.반면, HTTPS(Hypertext Transf..
자바스크립트는 현대 웹 개발에서 빼놓을 수 없는 중요한 언어예요. 오늘은 자바스크립트의 배경과 발전 과정을 살펴보면서, 왜 이 언어가 이렇게 중요한지 알아보려고 합니다. 😊자바스크립트는 1995년 브렌던 아이크(Brendan Eich)에 의해 개발되었어요. 당시 웹 페이지에 동적인 기능을 추가하기 위해 만들어졌다고 해요. 처음에는 "Mocha"라는 이름으로 불렸지만, 나중에 "LiveScript"로 변경되었고, 결국 "JavaScript"라는 이름으로 정착하게 되었죠. 이 이름은 당시 인기 있었던 자바 언어의 인기를 반영한 것이라고 해요. 자바스크립트는 1996년 넷스케이프의 웹 브라우저인 Netscape Navigator에 탑재되면서 본격적으로 사용되기 시작했어요.자바스크립트의 발전 과정자바스크립트는..
· Activities
I/O Extended 2024 Incheon 행사 후기📅 행사 개요I/O Extended 2024 Incheon은 Google의 연례 개발자 회의인 Google I/O의 주요 발표와 내용을 공유하고, 개발자 커뮤니티와 함께 학습하고 네트워킹하는 행사였다. 여러 유익한 세션을 통해 최신 기술 동향을 배울 수있는 좋은 기회였다. ✅ Session: 나는 언제부터 CTO를 꿈꿨나이번 세션에서는 개발자로서 성장하는 과정과 CTO를 꿈꾸게 된 계기에 대해 공유했다. Software Engineer로서의 개발 역량을 강조하며, 팀장으로서의 역할과 비개발 직군과의 소통 방법을 다뤘다. 극한의 환경에서 성장한 경험을 바탕으로, 도전과 기회를 막지 않는 환경의 중요성을 느낄 수 있었다. 특히, 팀의 방향성과 커뮤니케..
🚀 객체지향 프로그래밍 (OOP)과 절차지향 프로그래밍 (POP)의 차이💡 객체지향 프로그래밍이란?객체지향 프로그래밍(Object-Oriented Programming, OOP)은 데이터를 객체로 모델링하고, 이 객체들이 서로 상호작용하면서 프로그램이 동작하도록 설계하는 방식이다. OOP의 핵심 개념은 클래스와 객체, 상속, 다형성, 캡슐화, 그리고 추상화이다.📘 절차지향 프로그래밍이란?절차지향 프로그래밍(Procedural Programming, POP)은 프로그램을 순차적인 명령어의 집합으로 구성하는 방식이다. 주로 함수나 프로시저를 통해 작업을 수행하며, 프로그램의 흐름이 절차적으로 진행된다.📌 객체지향 프로그래밍의 주요 특징1. 클래스와 객체클래스: 객체의 청사진으로 속성과 동작을 정의한다..
🚀 객체지향 프로그래밍 (OOP) 및 객체지향 패러다임💡 객체지향 프로그래밍이란?객체지향 프로그래밍(Object-Oriented Programming, OOP)은 소프트웨어 설계 및 개발 방법론 중 하나로, 데이터와 그 데이터를 처리하는 방법을 하나의 객체로 묶어 관리하는 방식이다. 객체지향 프로그래밍은 소프트웨어를 여러 개의 독립적인 객체들의 상호작용으로 구성한다.📌 객체지향 프로그래밍의 주요 개념1. 클래스와 객체클래스: 객체를 정의하는 틀 또는 설계도. 객체의 속성과 행위를 정의한다.객체: 클래스를 기반으로 생성된 실체. 클래스의 인스턴스라고도 불린다.Car 클래스public class Car { String color; int speed; void accelerate() { ..
Hexagonal Architecture란?Hexagonal Architecture(헥사고널 아키텍처)는 소프트웨어 설계의 한 방법론으로, 시스템을 다양한 독립적인 모듈로 나누어 각각의 모듈이 서로 독립적으로 개발되고 테스트될 수 있도록 하는 것을 목표로 한다. 이는 클린 아키텍처(Clean Architecture)나 포트와 어댑터 아키텍처(Ports and Adapters Architecture)라고도 불린다. Alistair Cockburn에 의해 제안된 이 아키텍처는 애플리케이션의 핵심 비즈니스 로직을 외부 환경과 독립적으로 만들고, 다양한 외부 서비스나 사용자 인터페이스와의 통합을 유연하게 할 수 있도록 돕는다. Hexagonal Architecture의 주요 구성 요소1. 핵심 도메인 (Core..
· Activities
구글 스타트업 캠퍼스에서 열린 GDG Campus Korea의 행사에 다녀왔다. 이번 행사는 대학생 개발자를 위한 챕터인 GDG Campus Korea에서 주최한 특별한 이벤트로, 실제 회사에서의 업무 방식을 미리 경험해보고, 현업 멘토와의 네트워킹을 통해 개발 지식을 넓힐 수 있는 기회였다. 행사 소개GDG상사는 참가자들이 실제 회사에서 일하는 방식을 체험할 수 있도록 다양한 프로그램을 준비했다. 각 팀은 8명의 참가자와 1명의 멘토로 구성되었다.(아닌 팀도 있었다.) 나는 백엔드 개발자로서 알바 스쿼드 팀에 배정받았다. 이번 행사의 주요 목표는 중고거래 플랫폼인 GDG 상사를 더욱 발전시키기 위한 아이디어를 구체화하고, 실제로 구현해보는 것이었다. 알바 프로젝트 목표중고거래 플랫폼인 GDG 상사는 ..
유닛 테스트란?유닛 테스트(Unit Test), 또는 단위 테스트는 소프트웨어 개발 과정에서 가장 기본적이고 중요한 테스트 기법 중 하나다. 유닛 테스트의 목적은 애플리케이션의 개별 구성 요소, 즉 "유닛"이 예상대로 작동하는지 확인하는 것이다. 일반적으로 유닛은 메소드, 클래스, 또는 모듈과 같은 작은 코드 단위를 의미한다. 왜 유닛 테스트를 해야 하는가?유닛 테스트는 여러 가지 이유로 중요하다:코드 품질 향상: 유닛 테스트를 작성하면 코드의 결함을 조기에 발견할 수 있어 전반적인 코드 품질을 높일 수 있다.디버깅 용이: 특정 유닛이 잘못된 동작을 할 경우, 해당 유닛을 빠르게 디버깅할 수 있다.안정성: 코드 변경이 기존 기능에 미치는 영향을 최소화할 수 있다.문서화: 테스트 코드는 코드베이스의 동작을..
N+1 문제란?N+1 문제는 JPA나 ORM을 사용할 때 발생할 수 있는 성능 문제 중 하나다. 간단히 말해, 하나의 쿼리를 실행한 후 관련된 N개의 항목에 대해 추가로 N개의 쿼리가 실행되는 상황을 말한다. 예를 들어, 한 번의 조회 쿼리로 여러 개의 부모 엔티티를 가져온 후, 각 부모 엔티티와 관련된 자식 엔티티를 조회하기 위해 N번의 추가 쿼리가 실행되는 경우가 이에 해당한다. N+1 문제 예시Entity Class@Entitypublic class Parent { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @OneToMany(mappedBy = "parent", fetch = FetchTy..
악덕