![[Java] static import](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdniixQ%2FbtsDRH84KCu%2FmAxXtci582IEsc7XIThdkK%2Fimg.jpg)
static import는 클래스의 정적 멤버(메서드와 필드)를 클래스 이름 없이 직접 사용할 수 있도록 해준다. 이를 통해 코드의 가독성을 높일 수 있지만, 과도하게 사용할 경우 어느 클래스에서 메서드나 필드가 정의되었는지 혼란을 줄 수 있다. 예를들어, static import를 사용하지 않는 경우, 예를 들어 Math 클래스의 sqrt 메서드를 사용하려면 클래스 이름을 명시해야 한다. double result = Math.sqrt(25); // Math 클래스의 sqrt 메서드 사용 static import를 사용하면, 메서드를 클래스 이름 없이 직접 호출할 수 있다 import static java.lang.Math.sqrt; ... double result = sqrt(25); // Math.s..
![[Spring 입문] 회원관리 예제 - 웹 MVC 개발](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fln2UY%2FbtsDyQ7l0Sg%2FKGXRlyJ3fr0ZepL7c9Jfs0%2Fimg.png)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 홈 화면 추가 HomeController를 통해 html 연결하기 controller 패키지에서 HomeController 클래스를 하나 생성한다. @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } @Controller 어노테이션을 붙여준다. 그리고 @GetMapping을 통해 "/"를 연결시킨다. /은 도메인의 첫번째 주소를 말한다. 즉, localhost:8080/ 에 접속했을 때 이 메서드가 호출이 되는 것이다. 이후 return 값으로 home을 반환한다. 따라서 이 메서드가..
![[Spring 입문] 스프링 빈과 의존관계](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVjgRA%2FbtsDAwtIi3j%2FbXVTyyAHORYqimlSsPqZ8K%2Fimg.png)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 아래의 글에 연관이 있는 포스팅입니다. 2024.01.21 - [Java Category/Spring] - [Spring 입문] 회원 관리 예제 - 백엔드 개발 회원 가입하고 그 결과를 html을 통해 화면에 띄우려고 하는데, 그러러면 Controller와 View template가 필요하다. MemberController를 만들어서 사용해야 하는데, MemberController가 MemberService를 통해서 회원 가입을 하고, 데이터 조회를 해야 한다. 이런 것을 "MemberController가 MemberService를 의존한다" 라고 표현한다. 따라서 회원 컨트롤러가 회원서비스와 회원 리포지토리를..
![[Java] 리스트 구현(SLL, DLL)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFIXYq%2FbtsDJCUuJmK%2FlF7Rtv3rQ7btqUuEoeBIWK%2Fimg.png)
단일 연결 리스트(Singly Linked List) 직접 구현 노드 class Node { E data; Node next; Node(E data) { this.data = data; this.next = null; } } 노드 추가 //리스트의 가장 뒷쪽에 데이터 추가 public void add(E data) { Node newNode = new Node(data); if (head == null) head = newNode; else { Node currentHead = head; while (currentHead.next != null) currentHead = currentHead.next; currentHead.next = newNode; } } 노드 삽입 //리스트의 원하는 인덱스에 데이터..
![[Spring 입문] 회원 관리 예제 - 백엔드 개발](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq29Zj%2FbtsDAg4MCdv%2FBb8DttRjvKI5qgiUBa10LK%2Fimg.png)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 비즈니스 요구사항 정리 데이터 : 회원 ID, 이름 기능 : 회원 등록(단, 중복 이름 허용X), 회원 조회 아직 DB가 선정되지 않은 상황 (가상의 시나리오) 일반적인 웹 애플리케이션 계층 구조 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현 (예를 들어 회원 중복 가입 허용 안됨과 같은 로직들 또한 비즈니스 도메인 객체를 가지고 핵심 비즈니스 로직이 동작하도록 구현한 객체) 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 (아직 DB가 선정되지 않은 상태로 가정) 도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 클..
![[Spring 입문] 스프링 웹 개발 기초](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJlWNW%2FbtsDs4YgD9b%2Fmdq6JGIBYVKydbMZXucpKk%2Fimg.png)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 웹을 개발하는 방법에는 크게 세 가지가 있다. 1. 정적 컨텐츠 (static contents) 서버에서 따로 가공을 거치지 않고 파일을 웹 브라우저에 그대로 보내는 방식이다. 2. MVC와 템플릿 엔진(template engine) 과거의 JSP, PHP 같은 것들이 template engine이다. 정적 컨텐츠처럼 html을 웹 브라우저에 그대로 보내는 것이 아니라, 데이터를 가공 해서 html을 동적으로 바꿔서 웹 브라우저에 보내는 일을 한다. 이런 방법을 사용하기 위해서는 Model, View, Controller가 필요한데, 이를 합쳐서 MVC라고 부른다. 정적 컨텐츠와의 차이점 html을 웹 페이지에..
![[Spring 입문] 프로젝트 환경 설정](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdSbarL%2FbtsDrHCnAWZ%2FJNWE6KGWZQQm3TnykN0K7K%2Fimg.png)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 라이브러리 살펴보기 External Libraries Project 창에서 "External Libraries"를 찾을 수 있는데, 이 External Libraries를 보면 가져온 라이브러리들이 무엇인지 볼 수 있다. 해당 폴더를 펼치면 어떤 라이브러리들이 포함되어 있는지 알 수 있다. 하지만 항목들이 너무 많기 때문에 뭐가 뭔지 알기가 힘들다. 이럴 때에는 Gradle 탭을 활용하면 좋다. Gradle 탭 Gradle 탭의 Dependencies를 보면 선택한 라이브러리를 볼 수 있다. Denpendencies는 의존성이라는 뜻인데, gradle(maven)의 의존 관계를 관리해준다. Dependencie..
![[JavaScript] 클래스](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLhz5B%2FbtsDkUhjJ12%2FxpOkeI6yhNKXOFk1ojFPO0%2Fimg.png)
이 글은 혼자공부하는 자바스크립트(저자 : 윤인성)의 책 내용과 유튜브 동영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 클래스 기본 형태 다른 프로그래밍 언어와 비슷한 형태이다. private 클래스 내부에서 사용되는 # 기호로 시작하는 이름으로 선언된 멤버가 private 멤버로 취급된다. 이러한 private 멤버는 클래스 외부에서 직접 접근할 수 없다. static JavaScript에서 static 키워드는 클래스의 정적(static) 멤버를 정의할 때 사용된다. 정적 멤버는 클래스 자체에 속하며 인스턴스를 생성하지 않고도 클래스에서 직접 접근할 수 있는 멤버이다. 상속 JavaScript에서 클래스를 정의할 때, extends 키워드를 사용하여 다른 클래스를 상속할 수 있다. 만약 부모 ..