함수(Function)와 메서드(Method) 두 단어의 차이에 대해 정리한 글입니다. 우선, 함수와 메서드는 프로그래밍에서 기능 단위의 코드 블록입니다. 그러나, 일반적으로 함수와 메서드는 객체지향 프로그래밍과 절차지향 프로그래밍에 따라 약간의 차이가 있습니다. 함수(Function)란? 함수는 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합입니다. 함수는 절차지향 프로그래밍에서 사용되며, 데이터를 입력받아 처리하고 결과를 반환합니다. 함수는 프로그램의 구조화와 코드 재사용을 위해 사용되기 때문에 여러 곳에서 호출되어 사용이 가능합니다. 하나의 기능이 하나의 함수로 구현되어 있기 때문에 디버깅 작업이 편리해집니다. 메서드(Method)란? 메서드는 객체지향 프로그래밍에서 사용되..
Spring Security란?Spring Security는 Spring 기반 애플리케이션의 인증, 인가 및 보안을 담당하는 스프링 하위 프레임워크입니다.Spring Security는 인증(Authentication)과 권한(Authorization)에 대한 부분을 Filter 기반으로 동작하고 Spring MVC와 분리되어 관리 및 동작하며, 데이터 보호 기능을 포함하여 웹 개발 과정에서 필수적인 사용자 관리 기능을 구현하는데 도움을 줍니다. Spring Security 3.2부터는 XML을 설정하지 않고 Java Bean 설정으로 간단하게 설정할 수 있도록 지원해줍니다.Spring Security를 사용하는 이유Spring Security를 사용하는 이유는 Spring의 생태계에서 보안에 필요한 기능..
프로세스와 스레드의 차이점에 대해 설명해 보세요. 우선, 프로세스는 독립적으로 실행 중인 프로그램을 말하고, 메모리 영역(Heap, Stack 등)을 다른 프로세스와 공유하지 않습니다. 그리고 프로세스는 최소 1개의 스레드 즉, 메인 스레드를 가지고 있습니다. 스레드는 프로세스 내에서 Stack만 별도로 할당받아 그 외에 메모리 영역을 공유하기 때문에 다른 스레드의 실형 결과를 즉시 확인할 수 있습니다. 그리고 스레드는 프로세스 내에 존재하고 프로세스가 할당받은 자원을 이용해서 실행됩니다. 멀티 프로세스와 멀티 스레드의 차이점에 대해 설명해 보세요. 멀티 프로세스는 하나의 프로세스가 죽어도 다른 프로세스에 영향을 끼치지 않고 계속 실행된다는 장점이 있지만, 멀티 르세드보다 많은 메모리 공간과 CPU를 차..
데이터베이스 기본 이해 SQL이란 무엇인가요? 그리고 SQL의 풀네임은 무엇인가요? SQL은 Structured Query Language의 약자로, 관계형 데이터베이스에서 데이터를 관리하고 조작하기 위한 표준화된 언어입니다. 데이터베이스 시스템과 상호작용하기 위한 명령을 정의하며, 데이터를 검색, 삽입, 수정, 삭제하고 스키마를 관리하는 데 사용됩니다. 데이터베이스 관리 시스템(DBMS)과 통신할 때 사용되며, 대부분의 관계형 데이터베이스(RDBMS)에서 지원됩니다. RDBMS란 무엇이며, 대표적인 예시를 들어주세요. RDBMS은 관계형 데이터베이스 관리 시스템을 나타내는 약어로, 데이터를 테이블 형태로 구조화하고 관리하는 데이터베이스 시스템입니다. RDBMS는 데이터를 행과 열로 표현하는 테이블로 구..
개인적으로 기술면접을 준비하면서 작성한 글입니다. 잘못된 내용이 기재되어 있으면 댓글로 말씀해 주시면 감사하겠습니다.. :) 지속적으로 확인하여 퀄리티 향상을 위해 힘써보겠습니다.. JVM 및 메모리 관리 자바의 동작 원리에 대해 설명해 보세요. 개발자는 [.java] 확장자 파일에 자바 소스 코드를 작성합니다. 이 파일은 자바 프로그램의 원시 코드를 포함합니다. 그리고 자바 컴파일러가 [.java] 파일의 소스 코드를 바이트 코드로 변환하며, [.class] 확장자 파일로 저장됩니다. 이 파일은 플랫폼 독립적인 중간 표현 형태입니다. [.class] 파일들은 JVM 시작 또는 런타임 중에 필요할 때 클래스 로더에 의해 메모리에 로드됩니다. 이 과정은 필요한 클래스를 동적으로 로드하여 메모리에 배치합니다..
정렬 알고리즘이란?정렬 알고리즘이란, 목록 안에 저장된 원소들을 일정한 순서대로 정렬[재배치]하는 알고리즘입니다.사용하는 이유 ❓좀 더 효율적인 알고리즘 및 배열 및 리스트를 정리하기 위해서 사용합니다.정렬 알고리즘은 시간 복잡도와 메모리 사용량에 따라서 상황에 맞는 알고리즘을 사용하면 됩니다.정렬 시 고려사항정렬할 대상 데이터의 양 또는 메모리필요한 추가 메모리의 양버블 정렬(Bubble Sort)버블 정렬은 거품이 수면으로 올라오는 것처럼 정렬을 하기 때문에 버블 정렬이라고 명칭합니다. 인접한 두 요소를 비교하여 필요시 오름차순 또는 내림차순을 기준으로 교환하는 과정을 반복합니다.보통 버블 정렬은 구현이 간단하지만 비효율적이므로, 교육용으로 알고리즘의 기본 개념을 설명하거나 작은 데이터셋에 사용하고 ..
Java 기본 및 핵심 개념1. Java의 특징을 설명해주세요.자바는 객체지향 프로그래밍 언어로, 기본 자료형을 제외한 모든 요소들이 객체로 표현되고, 객체지향 개념의 특징인 캡슐화, 상속, 추상화, 다형성이 잘 적용된 언어입니다. 자바는 JVM위에서 동작하기 때문에 운영체제에 독립적이며, GC를 통해 자동으로 메모리 관리가 가능합니다. 하지만, JVM 위에서 동작하기 때문에 상대적으로 속도가 느리며 다중 상속이나 타입에 엄격하고 제약이 많은 편입니다.컴파일 언어와 인터프리터 언어에 대해 설명해 보세요.컴파일 언어와 인터프리터 언어는 프로그램 코드를 어떻게 실행하는지에 따라 구분됩니다.컴파일 언어는 컴파일러를 사용하는 언어에서 전체 코드가 한 번에 컴파일되어 실행 파일을 생성합니다. 생성된 이 실행 파일..
1. 기본 네트워크 용어네트워크 (Network) : 두 대 이상의 컴퓨터나 기타 장치들이 서로 연결되어 데이터를 주고받을 수 있는 통신망인터넷 (Internet) : TCP/IP 프로토콜을 기반으로, 전 세계의 컴퓨터를 연결해 정보를 교환하는 최대 규모의 네트워크패킷 (Packet) : 네트워크에서 데이터를 전송할 때 사용되는 작게 분할된 데이터 조각비트 (Bit) : 정보의 최소 단위로, 0 또는 1을 나타냄바이트 (Byte) : 컴퓨터의 정보량 단위로, 8비트를 1바이트라고 함2. 네트워크 종류 및 구성 요소LAN (Local Area Network) : 가까운 거리의 장치들을 연결한 근거리 통신망WAN (Wide Area Network) : 넓은 지역을 커버하는 원거리 통신망으로 여러 LAN을 연..
컴파일 언어, 인터프리터 언어 자바의 컴파일 언어와 인터프리터 언어의 특징을 모두 갖는 이유는 자바가 플랫폼 독립적인 언어이기 때문입니다. 자바 컴파일러는 소스 코드를 바이트 코드로 변환하므로, 한 번 작성한 코드를 다양한 운영체제에서 실행할 수 있습니다. 또한, 인터프리터 언어의 장점으로는 소스 코드를 작성한 후 즉시 실행할 수 있으므로 개발자가 빠르게 결과를 확인할 수 있습니다. 자바는 컴파일 언어와 인터프리터 언어의 특징을 모두 가지고 있는 하이브리드 언어입니다. 자바는 컴파일 언어와 인터프리터 언어의 장단점을 모두 가지고 있기 때문에, 개발자가 프로젝트의 요구사항에 맞게 선택할 수 있습니다. 컴파일 언어 컴파일러는 고급 언어로 작성된 소스 코드를 저급 언어로 번역하는 프로그램을 가리킨다. 컴파일 ..
🔥해당 글은 프로젝트 팀원과 함께 프로젝트 퀄리티 및 더 나은 개발자가 되기 위하여 북 스터디를 진행하였습니다. 나쁜 코드 나쁜 코드에 주석을 달지 마라. 새로 짜라 경솔하고 근거 없는 주석은 코드를 이해하기 어렵게 만든다. 오래되고 조잡한 주석은 거짓과 잘못된 정보를 퍼뜨려 피해를 준다. 좋은 코드 잘 달린 주석은 그 어떤 정보보다 유용하다. 코드만이 정확한 정보를 제공하는 유일한 출처다. 프로그래밍 언어를 잘 사용해 의도를 표현할 능력이 있다면, 주석은 거의 필요하지 않다. 코드만이 자기가 하는 일을 진실되게 말한다. 코드만이 정확한 정보를 제공하는 유일한 출처다. 그러므로 주석을 가능한 줄이도록 꾸준히 노력해야 한다. 주석은 나쁜 코드를 보완하지 못한다 코드에 주석을 추가하는 일반적인 이유는 코드 ..