반응형

분류 전체보기 201

[Java] 가변객체, 불변객체

Java에서 가변(mutable) 객체와 불변(immutable) 객체의 차이점은 객체의 내용을 변경할 수 있는지 여부! 사실 자바를 사용했다면, 해당 어휘에 대해서만 모를 뿐이지 모두가 사용해본 내용일 것이다. 아래 내용들을 보면서 어떤 의미인지 알아보자. 1. 가변 객체 (Mutable Object) 객체의 내용을 변경할 수 있는 객체입니다. 객체가 생성된 후, 내부의 상태를 변경할 수 있습니다. 가변 객체를 사용하면 메모리 사용량이 크게 증가할 수 있습니다. List mutableList = new ArrayList(); mutableList.add("A"); mutableList.add("B"); mutableList.add("C"); mutableList.remove(1); // "B" 제거 2..

[Java] String, StringBuilder, StringBuffer 차이점

Java에서 문자열을 사용할 때, 자주 보이는 클래스 String, StringBuffer, StringBuilder 차이점을 알아봅시다. 1. String String은 불변(immutable)한 문자열을 나타내는 클래스입니다. 문자열을 변경할 경우, 기존 문자열 객체를 변경하는 것이 아니라 새로운 문자열 객체를 생성합니다. 멀티 스레드 환경에서 안전합니다. String str = "hello"; str = str + " world"; // "hello world" 문자열 생성 2. StringBuilder StringBuilder는 가변(mutable)한 문자열을 나타내는 클래스입니다. 문자열을 변경할 때, 기존 객체를 변경하며, 새로운 객체를 생성하지 않습니다. 멀티 스레드 환경에서 안전하지 않습니..

[Spring] @ResponseBody에서 객체를 JSON 반환(HttpMessageConverter)

결론은 @ResponseBody어노테이션을 사용해도, Getter 사용하지 않는 필드는 자동으로 JSON 변환이 안됩니다. (Getter를 사용해!) 롬복 @Data 어노테이션을 남발하다 보면, 기본적인 @ResponseBody가(이것도 물론 @RestController로 사용하긴 합니다.) 작동하는 최소의 조건을 잊고 살 수 있다. 토이 프로젝트를 진행하면서 최소한의 어노테이션으로 진행해보려고 하니 예전에 배웠던 것들도 다시 한번 정리하는 시간을 가지게 되었다. 하나둘 씩 정리해서 블로그에 올리려고 한다. 1. @ResponseBody - @ResponseBody 어노테이션은 컨트롤러 메서드에서 반환되는 객체를 HTTP 응답 본문에 직접 쓰기 위해 사용됩니다. - 반환 타입에 따라 적절한 HttpMes..

Back-end/Spring 2023.03.30

[JAVA] StringBuilder 메서드 별 간단한 사용 예제

StringBuilder 클래스는 Java에서 문자열을 효율적으로 처리하는 데 사용되는 클래스이다. 사실, + 를 통해서 String을 append 하는 것 보다 객체 생성될 여지가 적기 때문에, 약간의 속도 개선이 있다. (가독성이 떨어진다는 점은 단점이긴 하다) 다양한 메서드와 사용 방법을 간단한 예제를 통해서 알아보자. 1. append(String str) : 문자열을 추가합니다. StringBuilder sb = new StringBuilder(); sb.append("Hello"); sb.append(" World"); String result = sb.toString(); // "Hello World" 2. insert(int offset, String str) : 문자열을 특정 위치에 삽입..

[macOS] 실행중인 포트 종료하기 (lsof, kill 명령어 옵션 설명)

급하신 분들을 위해 해결 방법부터 설명하고, 옵션에 대한 추가적인 설명을 하도록 하겠습니다. 1. 해결 방법 (포트 번호 8080 기준) 1) 터미널에서 lsof -i :8080 입력합니다. 터미널 $ lsof -i :8080 터미널에 lsof -i 8080 명령어를 입력하게 되면, 아래와 같이 해당 포트의 PID를 알수있습니다. 8080포트에서는 java가 실행중이고 PID는 1621인것을 알수있습니다. 2) 터미널에서 해당 PID를 종료시키기(PID 1621기준) 터미널 $ kill -9 1621 -9옵션은 강제 종료 옵션입니다. 뒤에 PID를 붙인 명령어를 입력해서 강제 종료합니다. 위 명령어를 입력하고 다시 lsof -i :8080으로 실행하고 있는지 조회해보면 제대로 종료 됐는지 확인할 수 있습..

etc 2023.03.17

[MySql] intellij에서 mysql 설치 및 terminal에서 실행(mac)

이번에 인텔리제이 Ultimate를 사용하면서 가장 편하고 좋았던 부분에 대해서 설명하려고 합니다. 다른 IDE에서 보다 더 친절하게 SQL을 종류별로 쉽게 설치 하도록 UI를 제공해주고 있습니다. 1. 인텔리제이에서 mysql 설치하는 법(다른 sql도 다 동일합니다.) 1) 우측 위 Database 메뉴 클릭 -> "+" 버튼 클릭합니다. 2) Data Source 클릭 3) 원하는 SQL 선택 4) 창 아래에 드라이버 파일 다운로드 클릭해서 mySQL을 설치합니다. 5) Data Sources and Drivers 창에서 유저와 패스워드 입력후 Test Connection 실행 6) Test Connection이 정상적으로 작동 했다면, mySQL 설치 및 세팅 완료 2. 터미널 실행 방법 1) 터..

SQL 2023.03.16

[Spring] 빈(Bean) 주입 받는 방법 가장 쉬운 예시

스프링에서 빈을 주입 받는 방법은 크게 3가지로 구분 됩니다. 1. 생성자 주입(Constructor Injection) - 권장 2.세터 주입(Setter Injection) 3.필드 주입(Field Injection) 위 3가지에 대한 가장 간단한 예시를 알아봅시다. 1. 생성자 주입 (권장) 생성자 주입은 스프링에서 가장 권장하는 주입 방법입니다. 생성자를 통해 의존성을 주입받기 때문에 객체가 생성될 때 필요한 의존성을 모두 주입받아 안전하게 사용할 수 있습니다. 주입 받을 객체를 생성자의 매개변수로 선언하면 됩니다. 예를 들어, 다음과 같이 생성자를 통해 의존성을 주입받을 수 있습니다. public class MyService { private final MyRepository myReposito..

Back-end/Spring 2023.03.15

[Spring] @Configuration과 @Component 사용법과 차이

스프링을 사용하면서 빈으로 클래스를 등록할 때, @Configuration과 @Component를 사용합니다. 이 둘의 차이를 구분하지 않고 사용하지 않도록 2가지 어노테이션에 대해서 알아보도록 합시다. 1. @Component @Component는 스프링의 컴포넌트 스캔 기능을 사용하여 빈으로 등록될 클래스에 적용할 수 있는 어노테이션입니다. @Component 어노테이션이 붙은 클래스는 스프링이 자동으로 빈으로 등록합니다. 이를 통해 코드 양을 줄이고 더 간결한 코드를 작성할 수 있습니다. @Component 어노테이션은 일반적으로 비즈니스 로직을 수행하는 클래스들에 많이 사용됩니다. @Component public class MyService { public void doSomething() { /..

Back-end/Spring 2023.03.15

[Spring] application.yml로 mysql DB 연동

library라는 테이블을 mysql로 만들고 난 뒤에 설정하는 상황입니다. 1. resources 밑에 application.yml 생성 2. 아래와 같이 설정 (mysql) spring: datasource: url: "jdbc:mysql://localhost/library" username: "root" password: "" driver-class-name: com.mysql.cj.jdbc.Driver "jdbc:mysql://"를 통해서 mysql의 localhost/library DB에 접근합니다.(테이블명을 적는게 아닙니다.) username, password를 설정하고, driver-class-name을 위와 같이 설정하면 됩니다.

Back-end/Spring 2023.03.15

HTTPie for Terminal 설치 방법 및 사용 방법(Mac)

0. HTTPie 사용 이유 포스트맨이나 웹 브라우저를 사용하는 것도 귀찮을 때가 있다. 우리가 사용하는 IDE 터미널에서 바로 요청하고 응답하는 메세지를 확인하고 싶을 때, HTTPie를 사용하면 엄청 간단하게 확인할 수 있다. 1. 설치 방법 1-1. 아래 사이트에 접속하면 상세하게 설명돼 있다. https://httpie.io/ HTTPie – API testing client that flows with you Making APIs simple and intuitive for those building the tools of our time. httpie.io 사이트에 접속 후 아무거나 바로 다운로드 하면안된다. 우리가 사용하는 것은 터미널 용이기 때문이다. 스크롤을 조금 내리면 HTTPie fo..

Back-end/HTTP 2023.03.14
반응형