QnA
·
카테고리 없음
#1. 개발 공부가 처음이신가요? 처음이 아니라면, 어느 정도 기간을 가지고 어떻게 학습을 하셨나요? #2. 내가 항해99에 참여한 계기는 무엇인가요? 어떤 역량을 기르고자, 혹은 어떻게 성장하고자 참여하셨는지 구체적으로 작성해주세요. #3. 개발자의 역할을 수행하는 데에 있어 나의 강점과 연관된 부분은 무엇이라고 생각하나요? 혹은 보완, 개선하고 싶은 개인 역량이 있나요 ? 과거 혹은 현재의 업무와 연관 지어도 좋습니다. ‘능력’을 기준으로 고민해주세요. #4. 항해99 수료 후, 어떤 모습으로 성장하고 싶나요? 개발자라는 커리어를 통해 무엇을 이루고 싶나요?
절차지향 / 객체지향 / 함수형 프로그래밍이란 무엇이고 차이점은 무엇인가?
·
스파르타 기술면접
절차지향 프로그래밍 💡 명령어를 순차적으로 실행하는 방식으로, 순서대로 실행되는 코드 블록을 작성하여 문제를 해결합니다. 순서대로???라기보다는 다른 워딩을 좀 더 찾아보자 프로시저와 함수를 중심으로 구성 C언어나 Pascal 등이 이에 해당합니다. 절차지향 프로그래밍의 장점으로는 구현이 쉽고 이해하기 쉽다는 점이 있습니다. 또한 대부분의 컴퓨터에서 실행 가능하며, 속도가 빠른 것이 특징입니다. 하지만 대규모 프로젝트에서는 유지보수가 어려워지고 코드의 재사용성이 떨어지는 단점이 있습니다. 또한 데이터와 함수가 분리되어 있어서 코드의 가독성이 떨어질 수 있습니다. 객체지향 프로그래밍 💡 객체 간의 상호작용을 통해 프로그램을 구성하며, 이를 통해 모듈화, 재사용성, 유지보수성 등을 높일 수 있습니다. 클래스..
Stack과 Queue 그리고 Array와 Linked List 자료구조
·
스파르타 기술면접
Stack 💡 후입선출(LIFO, Last-In-First-Out) 방식으로 데이터를 저장하는 자료구조 가장 마지막에 추가된 항목이 가장 먼저 제거됩니다. Stack은 push() 메서드를 사용하여 항목을 추가하고, pop() 메서드를 사용하여 가장 최근에 추가된 항목을 제거합니다. 예를 들어, 함수 호출 스택은 Stack을 이용하여 구현됩니다. 웹브라우저 방문한 주소를 스택에 저장해 두고 앞으로가기/ 뒤로가기 버튼, 괄호 짝 맞추기 import java.util.Stack; public class StackExample { public static void main(String[] args) { Stack stack = new Stack(); // 스택에 데이터 추가 stack.push("A"); st..
개인 프로젝트_노션링크
·
카테고리 없음
보호되어 있는 글입니다.
프로세스와 스레드
·
스파르타 기술면접
✅프로세스(Process) 💡 메모리에 적재되어 실행되고 있는 프로그램의 인스턴스 운영체제로부터 시스템 자원을 할당받은 작업의 단위 특징 프로세스는 독립된 메모리를 할당 받는다. 프로세스가 메모리를 관리하기 위해 이 공간들을 어떤 구조로 관리하는데, 이를 프로세스 주소 공간이라고 한다. 프로세스 주소 공간 → Code, Data, Stack, Heap 으로 구성됨 Code : 코드 자체를 구성하는 메모리 영역 (프로그램 명령) Data : 전역 변수, 정적 변수 등 Stack : 지역 변수, 함수 매개변수, 리턴 값 (임시 메모리 영역) Heap : 동적 할당 시 사용 (new(), malloc() 등…) 기본적으로 프로세스마다 최소 1개의 스레드(메인 스레드)를 갖는다. ➕멀티 프로세스 💡 하나의 프로..
List / Set / MAp, HashMap
·
스파르타 기술면접
List, Set, Map, HashMap의 차이 💡 List, Set, Map, HashMap은 모두 Java의 컬렉션 프레임워크에서 제공하는 인터페이스와 클래스 List 순서가 있는 데이터의 집합, 중복된 값을 허용, 인덱스를 통해 데이터에 접근 구현체 : ArrayList, LinkedList, Vector 등 ArrayList, LinkedList : 크기가 유동적 → 데이터 추가, 삭제가 자주 있는 경우에 적합 Vector : 멀티스레드 환경에서 적합 → 데이터의 동시성 처리에 적합 Set 순서가 없는 데이터 집합, 중복 허용 X 검색을 위한 자료구조로 많이 사용됨 →hash 때문이므로 셋 자체가 빠른게 아니므로 빼는게 좋다. HashSet, TreeSet 등 HashSet : Hash 알고리즘..
Filter / Interceptor / AOP
·
스파르타 기술면접
웹개발을 하다보면 공통적으로 처리해야 할 것들이 생김 (ex. 로그인처리, 권한체크 등…) →공통업무에 관련된 코드를 페이지별로 작성한다면 중복코드 발생 , 서버 부하 , 유지 보수 어려움 등의 문제가 발생한다. 즉, 공통된 업무는 따로 빼서 관리를 하는게 적합! Spring 에서는 이럴 때 3가지 방법이 존재한다. → Filter / Interceptor / AOP 흐름 Filer, Interceptor, AOP는 각각의 역할을 수행하며 특정 상황에서 필요에 따라 조합해서 사용. 요청 → request > filter > Servlet > Interceptor > AOP > Controller 순서로 실행. Interceptor, AOP, Controller : Spring Context Filter ..
DI의 방식 중 필드 vs 생성자 주입 방식
·
스파르타 기술면접
💡 DI는 객체간의 결합도를 줄여 의존관계를 느슨하게! →유연한 대처가 가능 DI의 방식 필드 주입 의존성을 나타내는 필드에 @Autowired어노테이션을 사용해서 주입 코드 작성이 간결 오류를 찾기 어렵고 의존성 주입의 순서를 보장하기 어려움 생성자 주입 의존성을 주입하는 생성자를 정의하고, @Autowired 어노테이션을 사용하여 의존성을 주입 오류를 찾을 수 있고, 의존성 주입의 순서를 보장 생성자를 통한 필수 의존성을 전달하므로, 의존성 누락에 대한 예방 가능 프로퍼티를 통한 의존성 주입 applicationContext.xml에 태그를 사용하여 의존성을 주입 →객체 생성 시 주입된 객체도 함께 생성됨 인터페이스를 통한 의존성 주입 추상화 개념을 이용한 의존성 주입 방식 의존성을 주입하는 대상 클..