전체 글 153

[Springboot] 데이터 인자를 넘겨받는 각기 어노테이션 : 목적으로 다르게 효율적으로 쓰일 수 있는 방법들

오늘은 form태그에서 컨트롤러에 인자를 할당하는 어노테이션 3가지에 대해 간단히 알아보고 실무에서는 어떻게 쓰이는지에 대해 알아보도록 하자. @RequestParam query 처리 전달받은 데이터를 URI상에서 찾는다. Type 1의 URI를 처리할 때 사용한다. GET 방식으로 넘어온 URI의 queryString을 받기 적절하다. @RequestBody로 데이터를 받을 경우 메소드의 파라미터명이 상관 없지만 @RequestParam으로 데이터를 받을 때는 데이터를 저장하는 이름으로 메소드의 파라미터명을 설정해줘야 한다. 해당하는 데이터만 받아올 수 있다. (@RequestBody는 객체를 받아옴) ex) http://localhost:8080/receive?name=sophie&age=23 @Pa..

[ProblemSolver] 개발 서버 구축하고 build 할 때 생기는 이슈들

안녕하세요. 스타트업으로 백엔드개발자로 이직한지 2주차입니다. 현재는 회사에서 사용하고 있는 백엔드 기술을 파악하고 소스코드를 분석하고 간단히 예제코드를 짜는 작업을 하며 업무 파악 중에 있습니다. 간단히 읊어보자면, 현재 회사에서는 Kotlin Web Server로 스프링부트를 사용하고 있고, JPA인 queryDSL을 사용하고 있습니다. 회사에서 사용하고 있는 백엔드 기술 기반으로 개발환경을 구축하고 코드작업을 하는데 지난 일주일동안 반복되는 에러를 경험하게되는 일 있었는데요. 그 때 겪은 이슈들을 공유해보고자합니다. 개인적으로 제일 어려운게 개발환경셋팅과 서버구축인것 같습니다. 1. 호환되지않는 다른 개발환경의 버전의 충돌 이슈 java, sdk, jdk , springboot 여러 개발 환경 버전..

네트워크와 CS 2022.10.23

[AWS] EC2 기본 사용법에 대해 알아보자

Elastic Compute Cloud EC2는 컴퓨터를 통째로 빌려주는 컴퓨터 임대 서비스 서비스를 이용한다고 집으로 컴퓨터가 배달되는 것은 아니다. 원격 제어를 이용해서 컴퓨터를 조작하고 더 이상 필요없어지면 언제든지 버릴 수 있는 서비스이다. AWS Mangement Console 사이트 접속 로그인/회원가입 https://ap-northeast-1.console.aws.amazon.com/ec2/home?region=ap-northeast-1#Home: EC2 검색하면 EC2 관련 대시보드 클릭 후 접속 👋🏻 인스턴스? EC2에서는 한대 한대 컴퓨터를 인스턴스라고 부른다. 인스턴스 메뉴를 통해서 내가 생성한 인스턴스들을 관리하고 새로운 인스턴스들을 시작할 수 있는 화면 새로운 인스턴스 만들기 인스..

DevOps/aws 2022.10.10

JPA 사용할 때 주의해야할 점 2편_관계매핑의 정의와 mappedBy 이해하기

그렇다면 양방향 관계 해결 방법은?? Entity01 BookStore @Entity @Getter @Setter public calss BookStore { @Id @GenerateValue private Integer id; private String name; @OneToMany(mappedBy ="bookStore") private Set books = new HashSet(); //add 메세지로 책을 책방에 추가한 것 void add(Book book){ book.setBookStore(this); this.books.add(book); } } book.setBookStore(this); 의 의미는 무엇일까? book.setBookStore(this); 를 추가하고 실행시키면 데이터 베이스 결..

Python pandas을 통해 DB 마이그레이션하는 방법

젯브레인에서 파이썬 IDE인 pycahrm를 설치한다. 파이썬을 설치한다. cmd에서 pandas를 설치한다. Python Pandas 설치 및 import 방법 https://danykde0til.tistory.com/m/104 파이썬과 판다스 설치 후 파이참에서 엑셀 파일을 잘 불러오는지 확인해본다. Python Pandas로 Excel 파일 불러오고 조회하는 방법 https://danykde0til.tistory.com/m/105 Python Pandas로 Excel 파일 불러오고 조회하는 방법 import pandas as pd import warnings import os warnings.simplefilter("ignore") fileDir = "C:/Users/SEEYA/Desktop/Dat..

Hibernate JPA 사용할 때 주의해야할 점. 원리를 모르면 그냥 쓰지마세요 1편

QueryDSL?? QueryDSL은 정적 타입을 이용해서 SQL 등의 쿼리를 생성해주는 프레임워크이다. QueryDSL의 장점 문자가 아닌 코드로 쿼리를 작성함으로써, 컴파일 시점에 문법 오류를 쉽게 확인할 수 있다. 자동 완성 등 IDE의 도움을 받을 수 있다. 동적인 쿼리 작성이 편리하다. 쿼리 작성 시 제약 조건 등을 메서드 추출을 통해 재사용할 수 있다. 잘못된 예제코드와 정상예제코드 작성을 통해 학습해보기 간단하게 entity가 두개가 있다. 이 둘은 양방향 관계이다. 일대다 양방향 관계이다. Entity01 BookStore @Entity @Getter @Setter public calss BookStore { @Id @GenerateValue private Integer id; privat..

kotlinBasic 이해하기

코틀린( Kotlin )은 2011년 7월 JetBrains사가 공개한 JVM에서 동작하는 프로그래밍 언어로서, 간결하고 실용적이며 **자바코드와의 상호운용성( interoperability )**를 중시한 언어 대상 플랫폼 코틀린의 주목적은 현재 자바가 사용되고 있는 모든 용도에 적합하면서도 더 간결하고 생산적이며 안전한 대체 언어를 제공하는 것이다. 서버상의 코드 ( 특히 웹 애플리케이션의 백엔드 ( backend ) ) 안드로이드 디바이스에서 실행되는 모바일 애플리케이션 변수 package com.sophie.myapplication.Kotlin //Variable //var, var name = data //var == varible - 내 맘대로 원하는 것을 넣을 수 있음 //value == v..

MSA 아키텍쳐

"하나의 큰 어플리케이션을 여러개의 작은 어플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍쳐" 이것은 마치 레고놀이와 같다. 작은 레고블록(Microservice) 하나하나를 붙여 어떠한 큰 결과물을 만드는 형태를 MSA 라고한다. small services, each running in its own process(스스로 돌아 갈 수 있는 작은 서비스) 와, independently deployable(독립적 배포 가능) 이 MicroService를 설명해 줄 수 있는 가장 핵심적인 문구라고 생각합니다. microService의 정의 이 MicroService를 설명해 줄 수 있는 가장 핵심적인 문구 small services, each running in its own process(스스로..

DesignPattern 2022.10.05

디자인 패턴 SOLID : Open- closed principle 개방 폐쇄 원칙

Open- closed principle 개방 폐쇄 원칙 개방폐쇄법칙에 대해 알아보면 extension에 대해서는 open modification에 대해서는 closed라고 써있다. 확장에 대해서는 개방 수정에 대해서는 페쇄라는 뜻인데 전혀 감이 오지않습니다. 이게 코드에 대한 제안이 아니라 코드에 behaviour에 대한 principle이기 때문에 이해가 바로 와닿진 않는다. 예제코드를 써보면서 감을 잡도록하겠다. 먼저 open- closed를 준수하지않은 코드를 먼저 보자. # Animal 클래스 하나를 생성 class Animal: #내부에 그 동물의 그 타입 프로퍼티를 가지고 있는다. # a_type에는 코양이 혹은 강아지와 같은 동물의 종류를 넣는 것이다. def __inti__(self, a..

DesignPattern 2022.10.05

SOLID 디자인 패턴 : 단일 책임 원칙 (Single Responsibility)

단일 책임 원칙 (Single Responsibility) 위키에 검색해보면 module, class, function은 하나의 파트에 대해서만 responsibility를 가져야한다. 라고 써있다. 매우 쉬운 원칙이기도하고 당연한 원칙이기도한데 프로그래밍을 처음 배우시는 분들이 놓치는 내용이기도하다. 간단한 예를 들어보겠다. 두 수를 더해주는 함수에 add함수와 숫자를 출력해주는 함수 numPrint를 만들 수 있다. def add(num1,num2): return num1+ num2 def numPrint(num): print(num) 두 함수를 보면 add함수는 두수를 더해서 리턴해주고, numPrint함수는 넘겨받은 숫자를 출력해준다. 각각 하나의Responsibility를 가지고 만들어진 함수이..

DesignPattern 2022.10.03