담비의 개발블로그

[CS]2026.01.30 면접준비 본문

CS(컴퓨터과학)

[CS]2026.01.30 면접준비

담비12 2026. 1. 31. 00:53

 

◆ String과 string의 차이점

 

▶ C#

String : .NET 프레임워크의 클래스이다. (System.String)
string : 키워드. 컴파일 시 System.String으로 변환
사실상 같지만 개발자들 사이에서는 코딩컨벤션(약속)을 따른다.

 

string (키워드): 변수를 선언하거나 타입을 지정할 때 사용한다.
String (클래스): 클래스의 정적(static) 메서드를 호출할 때 사용한다.

string.Format()이라고 써도 아무 문제 없이 작동하지만, String이라고 쓰면 클래스를 쓰는 코드로 보기가 더 쉬워진다.

 

▶ JAVA

String : 클래스만 존재
string : 존재하지 않음

 

 

스프링 부트의 장점


▶ 설정의 자동화 :  XML 설정이나 자바 설정 파일 없이, 프로젝트에 추가된 라이브러리를 보고 스프링이 알아서 필요한 빈(Bean)들을 등록해 준다. (예: DB 라이브러리가 있으면 알아서 DataSource 설정)

여담이지만 Spring 쓰다가 Spring Boot 쓰면서 편함의 신세계를 볼정도로 진짜 추천한다. 하지만 큰 서비스는 사정상 쓰지못할테니 여러가지 상황들을 충분히 고려해야한다고 생각한다.

▶ 내장 서버 : 별도의 외장 WAS(Tomcat 등)를 설치하고 설정할 필요가 없다. 프로젝트 자체에 서버가 내장되어 있어 main 메서드만 실행하면 바로 웹 서버가 뜬다.

▶ 의존성 관리의 단순화 : spring-boot-starter-web 하나만 추가하면 웹 개발에 필요한 수십 개의 라이브러리 조합을 버전 충돌 없이 한 번에 가져온다.

▶ 운영 편의성 : 애플리케이션의 상태, 힙 덤프, 로그 레벨 변경 등을 모니터링할 수 있는 기능을 기본으로 제공하여 운영 단계에서 매우 유리하다.

 

 스프링 부트의 단점

▶ 내부 작동의 불투명성 : 너무 많은 것을 자동으로 해주다 보니, 정확한 상태를 파악하기 어렵다. 예를들어 이게 왜 실행되는지 왜 안되는지 여부파악이 힘든것이다. 내부 구조를 깊이 모르면 에러가 났을 때 디버깅이 매우 힘들다.

▶ 무거운 애플리케이션 사이즈 : 사용하지 않는 라이브러리까지 'Starter' 묶음에 포함되어 배포 파일의 용량이 커진다. 이는 클라우드 환경에서 배포 속도에 영향을 줄 수 있다.

▶ 설정의 복잡성 : 자동 설정을 커스터마이징(개별설정)하려고 하면, 스프링 부트 내부의 @Conditional 같은 복잡한 어노테이션 구조를 이해해야 하므로 공부량이 급격히 많아집니다.

▶ 메모리 사용량 : 단순한 기능을 구현하더라도 스프링 프레임워크 자체의 무게 때문에 Node.js나 Go 같은 가벼운 런타임에 비해 메모리 점유율이 높다.

 



 

 

 

 

 

 

'CS(컴퓨터과학)' 카테고리의 다른 글

[CS]Java JVM 구조  (0) 2026.02.02
[CS]2026.01.31 면접준비  (0) 2026.02.01
자바(Java)란 무엇인가?  (0) 2025.11.27
[CS] 자바 메모리 영역&데이터 저장 방식(스택, 힙)  (0) 2025.10.21
[CS] 원시타입 참조타입  (0) 2025.10.21