본문 바로가기

👩‍💻TIL66

정적타입 언어 vs. 동적타입 언어 특징 비교하기 [Groovy] 정적타입 언어 vs. 동적타입 언어 특징 비교하기 자바를 사용하다 최근 그루비를 사용하며 개인적으로 느꼈던 가장 큰 차이 하나를 꼽자면 바로 자료형에 대한 명시 여부였습니다. groovy는 자바스크립트와 같은 동적타입을 지원하는 언어이므로, 따로 자료형에 대한 명시하지 않아도 런타임시 알아서 자료형을 넣어줍니다. (적응되니 너무 편했지만 상황에 따라 타입에러가 발생하는 경우도 있으니 주의!) 정적타입(Statically typed) vs 동적타입 (Dynamically typed) 먼저, 변수의 타입이란 int, short, float, String, 객체 와 같은 자료형을 뜻합니다. 💡 정적타입 언어란? 정적타입 언어(Statically typed language)는 컴파일 시 변수의 .. 2020. 9. 10.
[hibernate]org.hibernate.HibernateException: No Session found for current thread 에러 해결 org.hibernate.HibernateException: No Session found for current thread 가 발생했을 경우 높은 확률로 @Transactional이 빠진 상태이다. 따라서, service나 해당 메소드가 거쳐가는 클래스에 아래와 같이 @Transactional 어노테이션을 추가해주면 해당 에러가 해결된다. 2020. 9. 4.
[REST API] HTTP 응답 코드 간단 정리 💡 HTTP 응답 코드 1️⃣ 200번대 : 성공 200: Ok, 클라이언트의 요청을 정상적으로 수행함. 201: Created, 클라이언트에게 생성 작업을 요청받았고, 생성 작업을 성공함. 204: No Content, 요청은 성공했으나 응답할 콘텐츠가 없음. 205: Reset Content, 요청은 성공했으나 클라이언트의 화면을 새로 고침하도록 권고 206: Partial Content, 요청은 성공했으나 일부 범위의 데이터만 반환함. 2️⃣ 300번대 : 리다이렉션 301: Moved Permantly, 클라이언트가 요청한 리소스에 대한 URI가 영구적으로 변경되었음을 의미. 302: Found, 요청한 URI가 일시적으로 주소가 바뀌었을 경우를 의미. 303: See Other, 요청한 자원이 .. 2020. 8. 25.
[REST API] URL 규칙, RESTful한 URL이란? REST API URL 규칙, RESTful한 URL이란?RESTful API REST API 설계시 가장 중요한 항목은 아래 두가지이다. 1️⃣ URI는 정보의 자원을 표현해야 한다는 점 2️⃣ 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다는 점 두 가지를 기억하며, 좀 더 RESTful한 URL을 설계해보자!(REST API에 대해 더 알아보려면? 👉 클릭 ) 1. 소문자를 사용한다. 주소에서 대소문자를 구분하므로, 카멜방식이 아닌 소문자를 사용하여 작성한다. Bad http://restapi.example.com/users/postComments Good http://restapi.example.com/users/post-comments 2. 언더바를.. 2020. 8. 25.
[REST API] REST API 규칙/PUT과 POST 차이/PUT과 PATCH 차이 먼저, REST란? Representational State Transfer의 약자이며, 다음과 같이 구성되어 있다. 자원(Resource): URI 행위(Verb): HTTP Method 표현(Representations) 즉 REST는 URI를 통해 자원을 표시하고, HTTP Method를 이용하여 해당 자원의 행위를 규정하여 그 결과를 받는 것을 말한다. HTTP Method는 크게 GET, POST, PUT, DELETE가 대표적이며, 보통 CRUD에서 조회는 GET, 등록은 POST, 수정은 PUT, 삭제는 DELETE를 이용한다. GET과 DELETE는 비교적 그 행위가 명확하지만, POST와 PUT을 구분하기 위해서는 멱등성의 개념을 알아야 한다. 참고 💡 멱등성(Idempotence)이란?.. 2020. 8. 25.
[IDE] 이클립스 인텔리제이 장단점 비교(eclipse/IntelliJ) [IDE] 이클립스 인텔리제이 장단점 비교(eclipse/intelliJ) 1. 이클립스(eclipse) 역사가 오래되어 잘 작성된 문서, 수 많은 플러그인들이 존재하며 가장 대중적으로 사용되고 있는 IDE이다. 가장 큰 강점은 아마 무료라는 것이 아닐까 한다. 웹, 모바일, 데스크탑, 엔터프라이즈, 엠베디드 시스템 어플리케이션 개발등에 두루두루 사용되며 Eclipse 는 자바(JAVA)로 개발되어 있어 윈도우즈, 리눅스, 맥OS 등 대부분의 OS를 지원한다. 장점 - 무료다! - 여러 프로젝트를 동시에 관리할 수 있다. 단점 - 다른 IDE 툴들에 비해 느림, 하지만 하드웨어의 비약적인 발달로 인해 엄청많이 차이가 나지는 않음. - 자바로 만들어져서 자바가상머신(JVM) 위에서 실행되므로 다른 IDE에.. 2020. 8. 14.
[IntelliJ] 인텔리제이 자주 쓰는 단축키 정리 [IntelliJ] 인텔리제이 자주 쓰는 단축키 정리 처음 개발을 시작할 때 이클립스로 입문하여 사용하다, 최근 프로젝트부터 인텔리제이를 사용하게 되었다. 초반에는 인텔리제이의 단축키들이 너무 손에 익지 않아 매번 찾아보느라 꽤 시간을 썼었다. 지금 익숙해지니 전체 검색, 똑똑한 자동완성, 여러 플러그인 등 편한 기능들이 많아 만족하며 사용하고 있다!👍 자주 사용하는 단축키만 몇가지 정리해보자면 ( window 기준 ) 💡 기본 - 디렉토리, 패키지, 클래스 등 생성 목록 보기 : Alt + Insert - 한줄 아래로 복붙 : Ctrl+d - 자동정렬 : Ctrl+Alt_L - 코드 한줄 삭제 : Ctrl + y - 문자열 라인 합치기 : Ctrl+shift +j - 라인 단위로 옮기기 1) 문법에 관.. 2020. 8. 14.
[JPA/Hibernate] Restrictions 다중 조건 설정하기 [JPA/Hibernate] Restrictions 다중 조건 설정하기 최근 Groovy&Grails를 사용하면서 JPA ORM 과 유사한 GORM을 사용하고 있다. GORM이란? GORM과 ORM은 기본 문법이나, 큰 틀이 거의 유사하다. 하이버네이트 쿼리문을 작성하는 과정에서 조건을 2개 설정할때 오류가 발생했는데 원하는 equal 조건을 담은 다음 and로 연결하니 쿼리가 아주 잘 돌아갔다😂 1. 먼저 Criterion으로 eq 조건을 담아준다. Criterion period = Restrictions.eq('period', searchPeriod) Criterion type = Restrictions.eq('type', searchType) Criterion username = Restrictio.. 2020. 8. 5.
[DB] DB확장을 하는 두가지 방법- 스케일 아웃(scale out)과 스케일 업 (scale up) [DB] DB확장을 하는 두가지 방법- 스케일 아웃(scale out)과 스케일 업 (scale up) 서버를 운영하다보면 이용자의 증가, 서비스의 확장 등의 이유로 더 많은 용량과 성능이 더 필요하게 된다. 이때, 수평적으로 부하를 분산하는 스케일 아웃(scale out) 방식으로 확장을 할 지 아니면 해당 서버의 용량 자체를 올리는 스케일 업 (scale up) 방식으로 확장을 할지 선택해야 한다. 그렇다면 두 가지 방식이 각각 어떤 차이가 있을까? 💡 스케일 아웃 ‘스케일 아웃’이란 접속된 서버를 여러 대 추가하여 처리 능력을 향상하는 방법이다. 수평 스케일로 불리기도 한다. 예를 들어, 하나의 처리 능력을 가진 서버에 동일한 서버 6대를 더 추가하여, 총 7의 처리 능력을 만드는 것이다. 서버가 .. 2020. 7. 20.
[pandas] pd.get_dummies() : 데이터전처리/가변수 만들기 [pandas] pd.get_dummies() : 가변수 만들기 머신러닝을 할 때 기계가 이해할 수 있도록 모든 데이터를 수치로 변환해주는 전처리 작업이 필수적이다. 예를들어, 숫자가 아닌 object형의 데이터들이 있다면 (요일-월, 화, 수, 목, 금과 같은) 1️⃣ 먼저 수치형 데이터로 변환을 해주고 (0,1,2,3,...) 2️⃣ 그다음 수치화된 데이터를 가변수화하여 나타내 준다면 기계학습에 적합한 데이터의 형태로 가공된다. 그렇다면, 수치형 데이터로만 바꾸면 될텐데 왜 굳이 더미로 가변수화해야하는걸까? 왜냐하면, 수치형 데이터로만 변환을 하게 되면 서로 간의 관계성이 생기게 된다. 예를 들어, 월요일을 1, 화요일을 2, 수요일을 3이라고 단순하게 수치형 데이터로 변환하게 되면 해당 데이터들 간.. 2020. 6. 25.