분류 전체보기

· JAVA
자바 싱글톤 패턴이란 자바 싱글톤 패턴(Singleton Pattern)은 객체 생성을 단 한 번만 하고, 그 객체를 어디서든지 참조할 수 있도록 하는 디자인 패턴이다. 이는 메모리 낭비를 줄이고 객체의 일관성을 유지하는 데 도움이 된다. 자바에서 싱글톤 패턴은 다음과 같이 구현한다. 생성자를 private으로 선언하여 외부에서 직접 객체를 생성하지 못하도록 한다. 클래스 내부에 자기 자신의 인스턴스를 생성한다. getInstance() 메소드를 통해 생성한 인스턴스를 반환한다. public class Singleton { // 내부에서 자체적으로 인스턴스 생성 private static final Singleton instance = new Singleton(); // 외부에서 인스턴스 생성 불가 pr..
· JAVA
자바에서 클래스와 변수, 메소드에 static 키워드를 사용할 수 있다. 여러 인스턴스가 공유하는 기준 값이 필요한 경우 사용한다. static 키워드를 사용하면 해당 클래스의 여러 인스턴스에서 공유하는 데이터를 만들 수 있다. 또한, static 메소드를 사용하여 해당 클래스의 인스턴스를 생성하지 않고도 호출할 수 있다. static 변수, 메소드는 클래스가 로딩될 때 메모리에 할당된다. 해당 클래스의 인스턴스가 생성되기 전에 이미 메모리에 존재한다. 따라서, static은 프로그램이 실행되는 동안 메모리에 한 번만 할당 되며, 이는 메모리 사용을 줄일 수 있고, 프로그램의 성능을 향상시킨다. 하지만, static 변수를 남발하는 것은 좋지 않다. static 변수가 많아지면, 프로그램의 복잡도가 증가..
· JAVA
객체 간의 협력 (Collaboration) 객체 지향 프로그램에서 객체 간에는 협력이 이루어진다. 자바 객체 간의 협력은 객체 지향 프로그래밍에서 매우 중요하다. 객체는 다른 객체와 상호작용하면서 비즈니스 로직 수행에 필요한 데이터를 처리한다. 협력을 위해서는 먼저 다른 객체에게 요청을 전송해야 한다. 이러한 요청을 메세지라고 한다. 메세지를 처리하는 기능은 메서드이다. 객체는 다른 객체에게 메세지를 전송할 때, 메세지를 처리할 수 있는 메소드를 가지고 있는지 확인한다. 메소드가 존재하면 해당 메소드를 호출하여 메세지를 처리하고 결과를 반환한다. 두 학생이 버스와 지하철을 타는 상황을 구현해 보자. James와 Tomas는 각각 버스와 지하철을 타고 학교에 갑니다. James는 5000원을 가지고 있었..
· Git
Iteliij IDEA에서 혹시나 .idea 폴더에 .gitignore 파일이 있는 경우 .gitignore 파일을 프로젝트 디렉터리 최상단에 생성 혹은 위치시키도록 하자.. 예전에 이것 때문에 한참을 헤맨적이 있다.. 깃헙에서 TIL 레포지토리를 생성하고 커밋하던 중 저장소에 올라가있는 .idea 폴더 발견했다. .idea 폴더를 .gitignore에 추가하기 전에 이미 저장소에 올라갔기 때문에 해당 폴더를 원격 저장소에서 제거하고 커밋하려 한다. 원격 저장소에서 파일 제거 // 원격 저장소 및 로컬 저장소의 파일을 삭제합니다. $ git rm -r [File Name] // 원격 저장소에 있는 파일만 삭제합니다.(로컬 저장소의 파일은 삭제되지 않습니다.) $ git rm --cached -r [Fil..
· JAVA
This this 는 생성된 인스턴스의 메모리 주소를 가진다. public void setYear(int year) { this.year = year // this.year = 인스턴스의 변수, year = 매개 값 } public static void main(String args[]) { BirthDay day = new BirthDay(); day.setYear(2000); } 위와 같은 코드가 실행되면 메인 함수의 args와 day가 스택 메모리를 차지하게 되며 BirthDay 객체의 인스턴스인 day가 힙 메모리에 올라가게 된다. 다음으로 setYear() 메서드가 스택에 올라가게되고 setYear 메서드의 this.year은 힙 메모리에 적재된 BirthDay 인스턴스의 멤버변수를 가리킨다. ..
· JAVA
정보은닉과 캡슐화는 객체지향 프로그래밍에서 중요한 개념 중 하나이다. 이 두 개념은 객체의 응집도와 독립성을 높임으로써 객체의 모듈화를 지향한다. 객체의 모듈화가 잘 이루어져있을 경우 모듈 단위의 재사용이 매우 용이하다. 자바에서는 정보은닉과 캡슐화를 위해 다음과 같은 방법을 사용한다. 캡슐화 (Encapsulation) 캡슐화는 클래스의 구현 세부 정보를 외부에서 숨기고, 오직 public 인터페이스만 노출하는 것을 말한다. 이렇게 함으로써, 클래스의 내부 구현을 변경하더라도 외부 코드에 영향을 미치지 않도록 할 수 있다. public class BankAccount { private int balance; public void setBalance(int balance) { if (balance >= ..
· JAVA
객체 지향 프로그래밍과 함수적 프로그래밍을 혼합함으로써 더욱 효율적인 프로그래밍이 가능하도록 개발 언어가 변하고 있다. 자바 8에서도 함수적 프로그래밍을 위해 람다식을 지원하게 되었다. ✨ 함수적 프로그래밍 (Functional Programming) 함수형 프로그래밍은 거의 모든 것을 순수 함수로 나누어 문제를 해결하는 기법으로, 작은 문제를 해결하기 위한 함수를 작성하여 가독성을 높이고 유지보수를 용이하게 해준다. 람다식? 람다식은 익명 함수(anonymous function)을 생성하기 위한 식이다. 객체 지향 언어보다는 함수지향 언어에 가깝다. 자바에서 람다식을 수용한 이유는 자바 코드가 매우 간결해지고, 컬렉션의 요소를 필터링하거나 매핑해서 원하는 결과를 쉽게 집계할 수 있기 때문이다. 람다식의..
"Life-Changing Education" 패스트캠퍼스 백엔드 개발 5기 부트캠프 OT 후기 졸업 후 5개월 동안 방에서 인강만 들으며 공부하다 사람이 그리워질 찰나,, 패스트캠퍼스 부트캠프를 발견하고 지원하게 되었습니다. 저는 "Life-Changing Education"을 모토로 삼고, 사람이 성장하는 부트캠프를 기획하고 운영 하고자 노력한다. 라는 문구가 와닿아 백엔드 개발 부트캠프 5기에 지원하게 되었는데요. 저는 사람이 성장하는 것을 참 중요하게 생각합니다 😀 자기소개서 작성, 기초소양테스트, 비대면 면접까지 모든 접수 절차를 마치고 결과를 기다렸습니다. 감사하게도 패스트캠퍼스 백엔드 개발 5기 부트캠프에 최종 합격하게 되어 OT에 참석하게 되었습니다. 총 7개월 동안 진행되는 과정인 만큼 ..
detail.html 댓글 DB에 저장되어있는 작성자 이름과 스프링 시큐리티 로그인 정보의 사용자 이름이 같다면 삭제 버튼이 보이도록 설정해준다. 삭제 Thymeleaf 환경에서 외부 자바스크립트 파일에 선언된 함수를 참조하는 방법을 찾지 못하여서 html파일에 인라인 자바스크립트 코드를 생성하여 동작하도록 생성하였다. board.js 에 선언되어 있어야 할 스크립트 코드가 html 파일 인라인으로 선언되어 있어 유지보수에 용이하지 못하기 때문에 추후 리팩터링이 필요하다. “/api/board/{boardId}/reply/{replyId}” 주소로 DELETE 요청을 보낸다. BoardApiController.java @DeleteMapping("/api/board/{boardId}/reply/{repl..
hyunsb
'분류 전체보기' 카테고리의 글 목록 (17 Page)