Bible, Lee, Data
Faith, software, data, and everyday life.
Engineering/BackendAll posts
[Spring] 이상형 월드컵 웹 애플리케이션 개발 과정
사용자에게 여러 가지 선택지를 제시하고, 그 중에서 선호하는 것을 선택하여 대결을 진행하는 웹 기반 이상형 월드컵을 만들어 보도록 하자.이상형 월드컵을 사용자가 진행할 때 하나의 페이지에서 화면이 바뀌면서 진행되어야 하므로 데이터를 유지하기 위해 세션 객체를 사용해 보려고 한다.Spring 프로젝트에서 사용자가 선택한 이상형 월드컵 결과를 저장하고 관리하는 시스템을 구현하면서 코드를 검토하고 각 계층에서 사용한 기술을 점검해 보려고 한다. 💡Spring FrameworkSpring Framework는 자바 기반의 엔터프라이즈 응용 프로그램을 개발하기 위한 전체적인 인프라를 제공하는 경량 프레임워크로, 의존성 주입(Dependency Injection)과 관점 지향 프로그래밍(Aspect-Oriented..
[Java] static 멤버와 메서드의 활용 및 주의점
💡static 키워드란? Java에서 static 키워드는 클래스에서 공유되는 변수나 메서드를 정의할 때 사용하며, 메모리에 한번 할당되고 나면 프로그램이 종료될 때 해제된다. static 변수를 남발하면 메모리 관리에 문제를 일으킬 수 있으므로 신중하게 사용해야 한다. 과도한 static 멤버의 사용은 프로그램의 성능을 저하시키고, 메모리 누수의 원인이 될 수 있다. static 변수는 메모리에 고정적으로 할당되어 프로그램이 종료될 때 해제되는 변수이며, static 메서드는 객체 생성 없이 호출이 가능한 메서드라고 할 수 있다. 그리고 상태를 가지고 있지 않은 단순히 메서드만 가지고 있는 구조라고 볼 수 있는데, 이러한 이유로 인해 객체지향에 벗어난 개념이 되어 일부 좋지 않은 시선도 있는 편이다. ..
[Java] VS Code를 활용한 자바 프로그램 디버깅
프로그래밍을 할 때 디버깅은 굉장히 중요하다. 자바 프로그래밍을 하다 보면 오류를 해결해야 할 때가 있는데, 이때 디버깅이라는 기술을 사용하면 오류를 쉽게 찾고 해결할 수 있다. 디버그와 디버깅에 대한 개념을 이해하고 VS Code를 사용하여 자바 프로그램을 디버깅하는 방법에 대해 알아보도록 하자. 💡디버깅 관련 개념 디버그와 디버깅 디버깅(debugging)은 프로그램이 예상대로 작동하지 않거나 오류가 발생했을 때 이를 해결하는 과정을 의미한다. 여기서 디버그(debug)는 버그(bug)를 찾아 잡는 것을 의미하며, 버그란 프로그램이 개발자의 의도와 다르게 동작하거나 예상치 못한 오류로 인해 실행이 중단되는 상황을 가리킨다. 디버깅을 이용하여 이러한 오류를 잡아낼 수 있다. 디버거 디버깅 도구 중 하나..
[Streamlit] Elements를 활용한 웹 애플리케이션 만들기
💡웹 애플리케이션 구축Streamlit에서 Python 파일을 생성하고, Elements를 활용하여 웹 애플리케이션을 만들어 보도록 하자. Python 파일 생성하기VS Code에서 py 확장자로 'streamlit_app.py' 파일을 생성한다.파일이 생성되었으므로 기본 스크립트를 입력하고, run 명령어를 통해 프로젝트를 배포할 수 있다. 웹 페이지 실행하기streamlit run streamlit_app.py터미널에 streamlit run과 실행할 Python 파일명을 명령어로 입력하면 웹 페이지가 실행된다.현재 소스 코드를 작성하지 않은 상태이기 때문에 빈 화면이 표시된다.Scripts\activate.bat만약 실행되지 않는다면 가상 환경에 접속되지 않은 상태이므로 Scripts 명령어를 실..
[Streamlit] 개발자 환경 구축: VS Code의 가상 환경에 Streamlit 설치하기
💡StreamlitStreamlit은 데이터 기반 웹 애플리케이션을 만드는 오픈 소스 Python 라이브러리이다.데이터 분석과 시각화를 위한 웹 애플리케이션 개발 과정을 단순화하여 웹 개발 경험이 없는 사용자들도 쉽게 웹 애플리케이션을 구축할 수 있다. Streamlit 공식 홈페이지https://docs.streamlit.io/ Streamlit DocsJoin the community Streamlit is more than just a way to make data apps, it's also a community of creators that share their apps and ideas and help each other make their work better. Please come joi..
[Spring] Spring MVC Framework: MVC 패턴의 구조, 동작 과정
Spring MVC Framework는 웹 개발에서 널리 사용되는 아키텍처 중 하나로, MVC(Model-View-Controller) 패턴을 기반으로 한다. 💡MVC 패턴의 구조Model정의: 애플리케이션의 데이터를 책임지며, 비즈니스 로직을 처리한다.역할: 사용자에게 표시되는 데이터를 가공하고 저장하며, 데이터의 변경이 일어날 경우 적절한 처리 방법을 구현한다.구현: Java 객체로 표현되며, 특정 도메인의 데이터를 담는 역할을 한다. View정의: 시각적인 UI를 담당하며, 사용자에게 정보를 표현한다.역할: Model에서 받은 데이터를 화면에 표시하고, 사용자의 입력을 Controller에 전달한다.구현: 주로 HTML, JSP, Thymeleaf 등의 템플릿 엔진을 사용하여 구현한다. Contr..
[Spring] REST, REST API, RESTful API 정리⭐
💡RESTREST(REpresentational State Transfer)는 소프트웨어 아키텍처 스타일 중 하나로, 자원을 이름으로 구분하고 해당 자원의 상태(정보)를 주고받는 통신 방식을 나타낸다. State는 웹 애플리케이션의 상태를, Transfer는 해당 상태의 전송 방식을 의미한다.네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나이며, HTTP 프로토콜을 기반으로 하여 웹의 장점을 최대한 활용할 수 있다는 장점이 있다.REST는 반드시 Spring에서만 사용되는 건 아니며, 다양한 플랫폼 및 언어에서 활용될 수 있다. 📌REST의 구성 요소자원 (Resource)자원은 소프트웨어가 관리하는 모든 것을 나타내며, 각 자원은 고유한 식별자(ID)를 가진다. 이 식별자는 서버..
[Spring] 타임리프(Thymeleaf) 기본 문법, 기능 정리
타임리프는 서버 사이드 Java 템플릿 엔진으로, 주로 스프링 프레임워크와 함께 사용된다.이 템플릿 엔진은 HTML, XML, JavaScript, CSS를 렌더링 하는 데 사용되며, 특히 동적 웹 페이지의 개발에 용이하다.HTML 문법에 통합되어 있기 때문에 개발자와 디자이너 간의 협업을 쉽게 해 준다는 특징이 있다. [Spring Boot] Thymeleaf(타임리프) 표현식🌿Thymeleaf Thymeleaf는 View를 제작하여 화면을 출력하는 템플릿 엔진으로, 주로 웹 애플리케이션의 백엔드에서 서버 측 HTML 렌더링을 위해 사용된다. Thymeleaf는 JSP, EL, JSTL을 합쳐 놓은 느낌이다. 이isaac-christian.tistory.com타임리프 프로젝트 및 추가적인 내용은 위..