Dev-기타 15

스프링 프레임워크의 빈(Bean)이란

"빈"이란?스프링 컨테이너가 직접 생성하고, 관리하는 자바 객체(즉, 그냥 자바 객체지만, "스프링이 관리하는" 객체라는 점이 다릅니다.)스프링에서는 이런 빈(Bean)들이 서로 연결되고, 필요한 곳에 주입되어(Dependency Injection) 애플리케이션 전체를 구성하게 됩니다.빈의 역할과 필요성스프링 없이 우리가 평소에 자바 애플리케이션을 만든다고 가정해볼까요?A라는 클래스가 B라는 객체를 써야 하면, A 안에서 B를 직접 new B()로 생성합니다.public class A { private B b = new B(); // 직접 생성!} 이 방식은 단순하긴 한데,테스트하기 어렵고결합도가 높아지고다른 객체로 대체하거나 설정을 바꿀 때 코드 수정이 필요이런 문제들이 생깁니다.여기서 스프링의 ..

Dev-기타/BackEnd 2025.05.22

Maven과 XML로 시작하는 Spring 4.3.x 웹 애플리케이션

해당 블로그글은 레거시 스프링 프레임워크를 파악하고 학습하고자 작성한 블로그 글입니다.프로젝트 소스코드 및 필요한 파일들은 하단에 작성했습니다. (참고로, 스프링 프레임워크 4.3.16은 2018년 4월에 릴리즈되었습니다.) 빈(Bean) 개념은 아래 링크를 참조하시면 됩니다.https://lafortune.tistory.com/74 스프링 프레임워크의 빈(Bean)이란"빈"이란?스프링 컨테이너가 직접 생성하고, 관리하는 자바 객체(즉, 그냥 자바 객체지만, "스프링이 관리하는" 객체라는 점이 다릅니다.)스프링에서는 이런 빈(Bean)들이 서로 연결되고, 필요한lafortune.tistory.com Java는 익숙하지만 스프링 프레임워크는 처음인 개발자라면, 초기 설정부터 막막할 수 있습니다.이 글에서..

Dev-기타/BackEnd 2025.05.22

공개키 암호화와 대칭키 암호화, 하이브리드 암호화

우리가 인터넷을 통해 주고받는 데이터나 개인 정보를 안전하게 보호하려면 암호화를 잘 이해하고 활용해야 합니다. 암호화란 무엇인가?우선 암호화가 무엇인지 간단히 짚고 넘어가겠습니다. 암호화란 읽을 수 있는 평문 데이터를 읽을 수 없는 암호문으로 변환하여 무단 접근으로부터 데이터를 보호하는 과정을 말합니다.즉, 누구나 알아볼 수 있는 평문(plain text)을 어떤 규칙과 키(key)를 사용해 알아볼 수 없는 암호문(cipher text)으로 바꾸는 것입니다.이렇게 해두면 올바른 키 없이는 암호문을 다시 평문으로 되돌릴 수 없으므로, 민감한 정보를 안전하게 숨길 수 있습니다.예를 들어 메시지를 암호화해 두면 권한 없는 사람이 중간에 그 메시지를 가로채도 내용을 이해할 수 없게 되죠. 암호화를 수행하는 암..

Dev-기타/보안 2025.05.15

2024년 웹 개발 트렌드: 초보부터 전문가까지, 어떤 프레임워크를 선택할까?

매년 Stack Overflow에서 발표하는 개발자 설문조사 결과는 개발자들이 선호하는 기술 트렌드를 알아볼 수 있는 중요한 자료입니다. 이번 글에서는 코드를 배우는 사람들부터 전문가까지 각 그룹이 어떤 웹 프레임워크와 기술을 선호하는지 살펴보려고 합니다. 1. 코드를 배우는 사람들이 가장 많이 선택한 기술은?2024년, 코드를 배우는 사람들 사이에서 가장 인기 있는 기술은 바로 Node.js입니다.무려 44.2%나 되는 학습자가 이 기술을 선택했습니다. 프론트엔드에서는 React가 강세를 보이며 36.6%의 지지를 받았고요. 확실히 Node.js와 React는 배우기 쉽고, 바로바로 결과를 볼 수 있는 기술이라 초보자들에게 인기 있는 것 같아요. 코딩을 처음 시작할 때는 빠르게 눈에 보이는 성과를 내는..

Dev-기타/Web 2024.09.10

Mixin 사용하기

믹스인(Mixin) 이란?Mixin은 Dart 언어의 기능으로, 클래스의 일부 코드를 다른 클래스에서 재사용할 수 있도록 하는 기능입니다. Mixin은 클래스의 인스턴스를 생성하지 않으며, 다른 클래스에서 Mixin을 사용할 때 기능을 추가할 수 있습니다. 이를 통해 코드 중복을 줄이고, 여러 클래스에 동일한 기능을 제공할 수 있습니다. 또한 다른 클래스에 기능을 추가할 때 중복 코드를 줄이고 모듈화된 구조를 만들 수 있습니다. 믹스인 사용 방법1. 먼저 Mixin을 정의하기 위해서는 mixin 키워드를 사용합니다.mixin WalkMixin { void walk() { print('걷기'); }}2. 다른 클래스에서 Mixin을 사용하려면, with 키워드를 사용하여 추가합니다.class Hu..

Dev-기타/Flutter 2024.09.09

Future와 Stream

FutureFuture는 Dart에서 비동기 작업의 결과를 나타내는 클래스입니다. Future는 작업이 완료되었을 때 결과를 반환하거나 에러를 던집니다. Future를 사용하면 비동기 작업을 쉽게 처리할 수 있습니다.async/awaitasync와 await 키워드는 비동기 작업을 쉽게 처리할 수 있도록 도와줍니다. async 키워드를 사용하면 함수를 비동기 함수로 만들 수 있습니다. 이 함수는 Future를 반환합니다. await 키워드는 Future가 완료될 때까지 기다린 후 결과를 얻을 수 있게 합니다.import 'dart:async';Future fetchData() async { await Future.delayed(Duration(seconds: 3)); return '데이터';}void..

Dev-기타/Flutter 2024.09.09

[업무 자동화 기초] 1-1. 파일, 폴더 다루기

파일명을 변경하거나 폴더를 옮기는 작업은 주로 시스템 관리, 데이터 정리, 로그 파일 관리 등에서 필수적입니다.예를 들어, 날짜 정보가 포함된 파일을 날짜별로 정리하거나 텍스트 파일의 내용을 읽고 분석하는 등의 작업이 있습니다. 이 과정에서 Python의 강력한 라이브러리를 활용하면 업무를 효율적으로 자동화할 수 있습니다. Python 라이브러리 소개Python에는 파일을 다루기 위한 다양한 라이브러리가 존재합니다. 이 중에서 주로 사용하는 라이브러리는 shutil과 os 라이브러리입니다. 이 라이브러리들을 통해 파일과 폴더를 쉽게 다룰 수 있습니다.shutil 라이브러리파일을 복사하고 이동하는 등의 고급 파일 작업을 지원합니다.os 라이브러리파일과 폴더를 생성, 삭제, 이동하는 기본적인 작업을 지원합니..

Dev-기타/Python 2024.05.26

[이슈해결] fvm 설치 후 flutter - 안드로이드 빌드 실패

fvm 설치 후 flutter를 사용해서 안드로이드 빌드 시 아래와 같은 오류가 발생했다. * Where: Build file '/.../android/app/build.gradle' line: 26 * What went wrong: A problem occurred evaluating project ':app'. > Could not open cp_dsl generic class cache for script '/.../fvm/versions/3.3.3/packages/flutter_tools/gradle/flutter.gradle' (/.../.gradle/caches/7.4/scripts/926y60l3pifaoznpot8d19f2t). > BUG! exception in phase 'semanti..

Dev-기타/Flutter 2023.09.28

웹 크롤링의 기초 (feat. robots.txt)

인터넷에서 정보를 수집하는 기술인 '웹 크롤링'에 대해 알아볼까 합니다. 웹 크롤링이란? 우리는 인터넷에서 다양한 정보를 찾는 데 시간을 많이 보냅니다. 하지만 웹 사이트에 접속해서 웹 페이지를 찾고, 페이지에 존재하는 텍스트나 이미지를 살펴보며 원하는 정보를 얻는 것은 시간이 많이 드는 일이기도 합니다. 또한, 요즘과 같은 빅데이터 시대에는 한 가지 정보를 얻기 위해서도 여러 웹 사이트를 방문해야 하는 경우가 많습니다. 그런데 이런 방식은 매우 비효율적일 수 있습니다. 여기서 '웹 크롤링'이라는 개념이 등장합니다. 웹 크롤링은 웹 사이트에서 우리가 원하는 정보를 자동으로 수집하는 프로그램을 이용하는 행위를 말합니다. 이 프로그램을 웹 크롤러라고 부르며, 이를 통해 단시간에 많은 정보를 수집하고 반복 작..

Dev-기타/Python 2023.07.17

[학습] Jupyter 다른 사람과 같이 사용하기

Jupyter를 설치하면 로컬 컴퓨터에서 웹 브라우저를 통해 http://localhost:8888 주소로 액세스할 수 있는 Jupyter 노트북 웹 애플리케이션을 실행하도록 구성됩니다. 하지만 동일한 Jupyter 노트북에서 다른 사람들과 공동 작업을 하고 싶다면 인터넷을 통해 노트북을 공유할 수 있습니다. 정적 파일 (html) 전달 Jupyter 노트북을 정적 HTML 파일로 다운로드해 다른 사람들과 공유할 수 있습니다. "파일" > "다른 이름으로 다운로드" > "HTML(.html)" 을 통해 다운로드한 HTML파일을 다른 사람에게 전달합니다. HTML을 전달받은 사람은 웹 브라우저에서 이 파일을 열어 노트북의 콘텐츠를 볼 수 있습니다. 클라우드 서비스 이용 공유 환경에서 Jupyter 노트북..

Dev-기타/Python 2023.07.17