분류 전체보기
-
[SpringBoot] 스프링 vs 스프링부트Programming/SpringBoot 2023. 12. 2. 12:35
Spring스프링의 가장 큰 특징은 POJO프로그래밍을 지향하는 것입니다.(POJO(Plain Old Java Object) : 순수 Java만을 통해서 생성한 객체) POJO는 순수 Java만을 사용하여 만든 객체이므로 특정 기술이나 환경에 종속되지 않습니다. 따라서, 외부 기술이나 규약의 변화에 얽매이지 않아 유연하게 변화와 확장에 대처할 수 있습니다.이러한 POJO를 사용하여 비즈니스 로직을 구현하면 객체지향 설계를 제한없이 적용할 수 있으며, 코드가 단순해져 테스트와 디버깅이 쉬워집니다. 이처럼 비즈니스 로직을 구현하는데 POJO를 적극적으로 활용하는 프로그래밍 패러다임을 POJO프로그래밍이라고 합니다. POJO프로그래밍을 위해 스프링이 지원하는 기술인 IoC, DI, AOP, PSA,가 있습니다..
-
[프로그래머스] 리코쳇 로봇 c++Coding Test/programmers 2023. 11. 17. 18:07
문제 설명 문제 바로가기 제한 사항 3 ≤ board의 길이 ≤ 100 3 ≤ board의 원소의 길이 ≤ 100 board의 원소의 길이는 모두 동일합니다. 문자열은 ".", "D", "R", "G"로만 구성되어 있으며 각각 빈 공간, 장애물, 로봇의 처음 위치, 목표 지점을 나타냅니다. "R"과 "G"는 한 번씩 등장합니다. 입출력 예 board result ["...D..R", ".D.G...", "....D.D", "D....D.", "..D...."] 7 [".D.R", "....", ".G..", "...D"] -1 풀이 #include #include #include using namespace std; int n, m; int dist[6] = {1,0,-1,0,1}; queue Q; ve..
-
[프로그래머스] 오픈채팅방 C++Coding Test/programmers 2023. 10. 25. 14:13
문제 설명 문제 바로가기 제한 사항 record는 다음과 같은 문자열이 담긴 배열이며, 길이는 1 이상 100,000 이하이다. 다음은 record에 담긴 문자열에 대한 설명이다. 모든 유저는 [유저 아이디]로 구분한다. [유저 아이디] 사용자가 [닉네임]으로 채팅방에 입장 - "Enter [유저 아이디] [닉네임]" (ex. "Enter uid1234 Muzi") [유저 아이디] 사용자가 채팅방에서 퇴장 - "Leave [유저 아이디]" (ex. "Leave uid1234") [유저 아이디] 사용자가 닉네임을 [닉네임]으로 변경 - "Change [유저 아이디] [닉네임]" (ex. "Change uid1234 Muzi") 첫 단어는 Enter, Leave, Change 중 하나이다. 각 단어는 공백으..
-
[c++] Value Category ( lvalue, prvalue, xvalue ) , decltype함수Programming/c++ 2023. 10. 20. 16:16
타입과 value category는 다른 개념입니다! Value Category c++에서는 5가지의 값 카테고리가 존재합니다. - lvalue ( left value ) : 좌측값 - rvalue (right value ) : 우측값 - prvalue ( pure rvalue ) : 순수 우측값 - xvalue ( expiring value) : 소멸하는 값 - glvalue ( generalized lvalue) : 일반화된 좌측값 즉, 값 카테고리는 좌측값/우측값을 말합니다. 값 카테고리를 구분하기 위해 2가지 조건이 있습니다. - 정체를 알 수 있는가? : 해당 식이 다른 식과 같은지 다른지 구분할 수 있다. 일반적인 변수라면 주소값을 취해서 구분할 수 있고, 함수의 경우라면 이름만 확인하면 된다..
-
[c++] std::moveProgramming/c++ 2023. 10. 20. 14:58
1. 함수 원형 move 할당 연산자를 호출하는 move 생성자 // Move constructor. MemoryBlock(MemoryBlock&& other) noexcept : _data(nullptr) , _length(0) { *this = std::move(other); } // C++ 14 이전에는 constexpr 아님! template constexpr typename std::remove_reference::type&& move(T&& t) noexcept; 2. std::move move 할당 연산자 메모리, 파일 핸들 및 소켓과 같은 리소스를 해제하여 리소스 누수를 방지할 수 있습니다. std::move함수는 lvalue를 rvalue로 변환합니다. std::move된 객체를 함수에 ..
-
-
[프로그래머스] 광물 캐기 c++Coding Test/programmers 2023. 10. 13. 23:38
문제 설명 문제 바로가기 제한 사항 picks는 [dia, iron, stone]과 같은 구조로 이루어져 있습니다. 0 ≤ dia, iron, stone ≤ 5 dia는 다이아몬드 곡괭이의 수를 의미합니다. iron은 철 곡괭이의 수를 의미합니다. stone은 돌 곡괭이의 수를 의미합니다. 곡괭이는 최소 1개 이상 가지고 있습니다. 5 ≤ minerals의 길이 ≤ 50 minerals는 다음 3개의 문자열로 이루어져 있으며 각각의 의미는 다음과 같습니다. diamond : 다이아몬드 iron : 철 stone : 돌 입출력 예 picks minerals result [1, 3, 2] ["diamond", "diamond", "diamond", "iron", "iron", "diamond", "iron"..
-
[CS] EAIComputer Science/CS 2023. 10. 8. 14:46
EAI란? Enterprise Architecture Integration 기업 내에서 다양한 소프트웨어 애플리케이션과 시스템 간에 데이터와 프로세스를 효과적으로 통합하는 기술과 방법론을 가리킵니다. (기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션) 기업이 여러 종류의 애플리케이션을 사용하고 있는 경우에 그 데이터와 기능을 효과적으로 공유하고 상호 연동하기 위해 중요한 역할을 합니다. 기업 내에 여러 애플리케이션, 여러 담당파트 별 서버가 따로 존재하는 경우가 많고, 그에따라 IP주소 및 포트번호가 여러 개인 경우가 많습니다. 각각의 서버에 접근해서 정보를 얻는 API를 사용하려 할 때, 직접 접근해서 가져온다면 시스템이 복잡해질수록 그에 따..