본문 바로가기

Portpolio218

[spring]assertions.assertThat() 안되는 현상 해결 자바에서 테스트 코드를 작성하다보면, org.assertj.core.api.Assertions라는 클래스를 참 많이 쓰게 된다. 우선, Assertions.java를 들어가면 아래와 같은 설명이 나온다. 더보기 Entry point for assertion methods for different types. Each method in this class is a static factory for a type-specific assertion object. For example: int removed = employees.removeFired(); assertThat(removed).isZero(); List newEmployees = employees.hired(TODAY); assertThat(newE.. 2023. 5. 30.
intellij 생성자 단축키 종종, 자바 프로그래밍을 하다 보면, 생성자를 만들 일이 생긴다. 그럴 때 유용한 단축키가 있다. 바로, alt + insert 키를 눌러주는 것이다. 그러면 아래와 같이 생성자를 클릭하는 창이 뜨게 된다 2023. 5. 29.
c언어와 c++의 차이는? 보통, 컴공에 입학하면 C언어를 1학년 때 배우게 된다. 1학년 때 C언어 실습하다 보면, 2학년 3학년 때는 그런 C언어를 가지고 여러 실습 과목들을 수강하고 4학년 때는 임베디드나 운영체제 쪽으로 진로를 잡지 않는 한 거의 접하지는 않게 된다. 요새는 python으로 많이 바뀌는 추세라고 하긴 한다. 그러나 c언어는 생각보다 쉬운 언어가 아니다. c언어 자체가 unix 시스템을 위한 언어이다. 과거에는 범용os가 없고 하드웨어마다 그 하드웨어에 종속적인 프로그램을 짜던 시대적 상황이었다. 그런 시대적 상황에서 "범용" os인 unix가 만들어졌고, 그 unix에서 쓸 언어로 c언어가 탄생한 것이다. unix가 나왔고 그 시스템을 위해 나온 언어가 C언어였기 때문에, 고수준 언어 중에서 가장 과거의 형.. 2023. 5. 2.
[tip] 코테 시간 제한 통과하는 방법 boj처럼 코딩테스트 대비를 위한 알고리즘 사이트에서 문제를 풀다보면 아래와 같은 조건이 나오는 것을 볼 수 있다. 시간 제한과 메모리 제한이라는 제약 조건이 있는 것을 볼 수 있는데 처음에 풀다 보면, 막연하게 1초, 128mb이러니까 잘 와닿지 않고 저런 조건들은 어떻게 돌아가는 것인가 궁금할 수 있다. 나도 정확하게 저 정도가 어느 정도일까 하고 봤는데, 저 내용을 정확하게 이해하려면 몇 가지 개념을 이해해야 한다. 1. 시간복잡도 확인하기(제일 핵심) 시간복잡도는 알고리즘(연산)이 실행되는 동안에 사용된 기본적인 연산 횟수를 입력 크기의 함수로 나타낸다. 아래와 같이 시간복잡도는 알고리즘에서 가장 기초적인 부분이고, 지수와 로그에 대한 연산만 할 수 있다면 2. 로직을 정확하게 작성하자 처음 문제.. 2023. 4. 28.
[백엔드]WAS와 Web Server 차이? 스프링 자료를 찾다보면, 웹 어플리케이션 서버라는 말이 자주 등장한다. 우선, 자바 자체를 배울 때는 그 자체가 문법만 공부하느라 생각을 안 해봤는데, 대다수가 자바를 배우는 이유가 스프링을 공부해서 웹 백엔드 쪽으로 job을 얻으려는 목적이 아닌가.  웹 서버는 일반적인 데이터를 저장해 뒀다가, 필요할 때 웹상으로 보내주거나 저장시키는 개념 정도로 생각하기 마련인데 웹 어플리케이션 서버는 조금 더 복잡하게 다가온다. 그래서 간단하게 정리를 하면,   웹 어플리케이션 서버(Web Application Server)와 웹 서버(Web Server)는 모두 웹 어플리케이션을 실행하는 데 사용되지만, 그 역할과 기능이 약간 다르다. 웹 서버는 HTTP 프로토콜을 사용하여 클라이언트(브라우저)로부터 요청을 받고.. 2023. 4. 13.
[백엔드] 개발 블로그 어떤 게 좋을까? 개발하면서 코드 모음이나 더 크게는 프로젝트 보관하는 블로그 사이트를 고르게 되는데, 크게 보면 깃허브, velog, tistory 정도인 것 같다. 다 하면 좋을 것 같지만 하나 제대로 관리하는 것도 시간을 쪼개서 하다보면 비는 느낌을 갖게 되는데 특징을 나름대로 정리해봤다. 깃허브: 장점 - 코드 버젼 관리(설명이 필요없다) 개발업계에서의 범용성 단점: 글을 쓰기엔 조금 불편하다(github.io가 있긴 하다) velog: 장점 - 마크다운 인터페이스 좋음 단점: 유저가 아직 많진 않음 tistory: 장점 - 진입하기가 쉽다 단점: 에디터가 조금 부실하다 물론 사용하는 상황이나 검색 엔진 분석 등의 역량에 따라 달라질 수도 있다. 근데 블로그라는 것이 자칫 잘못해서 주객이 전도되면 콘텐츠를 만드는 .. 2023. 4. 9.
[백엔드] 자바 11 -> 자바 17로 업데이트 스프링 3.0부터는 자바 17부터 지원이 된다고 한다. 자바 11을 사용하다가 어쩔 수 없이 자바 버젼을 업그레이드 하게 된 과정을 리뷰해 보고자 한다. 1. 오라클 홈페이지에서 설치 파일을 다운로드 https://www.oracle.com/java/technologies/downloads/#java17 Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts. www.oracle.com 여기서 두번째 링크를 클릭해서 설치를 받도록 했다 이번에 받은 자바 버젼은 17.0.6 ver이다 이렇게 설치하.. 2023. 3. 2.
[백엔드] 스프링 프레임워크와 설치 방법 스프링은? 백엔드 개발 부문을 공부하면 가장 먼저 자바를 언어로서 문법을 공부하고, 다음으로 스프링 프레임워크를 활용하는 방법을 배우는 것이 대부분의 사람들에게 해당된다. 스프링은 언어가 아니라 프레임워크, 즉 응용 소프트웨어라는 구조에서 일정 이상 뼈대를 맞춰 주는 것이라고 할 수 있다. 건축에 비유하면, 골조공사까지 된 상태에서 배관, 타일, 난방 공사를 상황에 따라 여러 가지 건축물에 맞춰서 진행하듯, 스프링도 그러한 골조 공사의 역할과 비슷하다고 할 수 있다. 설치 방법 우선, 스프링 프레임워크를 설치하기 위해서는, 아래의 링크로 들어가서 다운을 받으면 된다. https://start.spring.io/ 그러면 이런 화면이 나오게 된다. 여기서 snapshot, m1 등은 미정식 버젼이므로 최신 .. 2023. 3. 2.