본문 바로가기
  • 시 쓰는 개발자

전체 글176

Spring 프로젝트 구조 (인텔리제이) 본 포스팅은 "점프 투 스프링부트"(박응용) 을 공부하면서 작성해놓은 글 입니다. SpringBoot 프로젝트 구조 이해하기 src/main/java 우리는 src/main/java 디렉터리의 하위 패키지에 자바 파일을 만들어서 파일을 작성하게 된다. 이때 말하는 하위 패키지란, 사실 크게 신경쓸 부분은 아니긴 한데 우리가 start.spring.io에서 만들어지는 패키지의 이름과 동일하다.(ex. com.mysite.sbb) 이 패키지 아래에서 controller나 dto, entity, service 파일 등을 만든다. Application 파일 모든 프로그램에는 시작을 담당하는 파일이 있다. 스프링부트 애플리케이션에도 시작을 담당하는 파일이 있는데 그 파일이 바로 "프로젝트명"+Application.. 2023. 9. 5.
SpringBoot 개발준비 (참고용) 본 포스팅은 "점프 투 스프링부트"(박응용) 을 공부하면서 작성해놓은 글 입니다. STS sts는 spring 전용 tool 정도로 생각하면 될 거 같은데, 이클립스나 인텔리제이같은 에디터이지만, spring 전용이기 때문에 start.spring.io가 자동으로 연동되는 등의 편리함이 있다. 하지만 우리는 인텔리제이 프로페셔널을 대학생용으로 사용 가능하기 때문에 굳이 안써도 될듯. SpringBoot 맛보기 @Controller HelloController 클래스가 컨트롤러의 기능을 수행한다는 의미이다. 이 애너테이션이 있어야 스프링부트 프레임워크가 컨트롤러로 인식한다. @GetMapping("/hello") http://localhost:8080/hello URL 요청이 발생하면 hello 메서드가 .. 2023. 9. 5.
docker에 대하여 상당히 러프하게 작성해놓음..!! 도커의 흐름 이미지를 내가 docker hub에서 pull로 받았음. 그럼 그 이미지는 나의 로컬 도커에 들어감. 그 이미지 안에는 레디스 환경설정이 들어있음. 그 환경 자체를 나한테 넘겨준것 이미지를 실행시키면 이미지가 컨테이너를 만들어줌. (여러개의 컨테이너 만들기도 가능) 도커를 실행시킬 땐 docker -- 이런식으로 명령어를 치기 때문에 명령어를 치는 시점의 주소가 어딘지는 상관 없음 redis를 직접 까는게 아니고 도커허브에서 redis 이미지를 받고, 이미지 받아서 컨테이너 실행시키고, 컨테이너 들어가서 환경설정(이름 비밀번호 뭐 이런거)을 새로 설정해주고, 그걸 다시 이미지화 시켜서 내가 쓰는 것임. (ex. MYSQL같은 것도 이미지 받아서 컨테이너 만들.. 2023. 9. 5.
spring 개발시 RestApi 방식과 뷰템플릿방식의 차이 스프링 공부를 하다보면 restapi, model, json, 뷰템플릿... 등의 이야기를 자주 듣게 되는데 이것들이 어떤 때에 사용되는 단어들인지 모르는 경우가 많다. 각각의 방식에 따라 데이터를 주고받는 형식이 다르고, 이것을 모른다면 Postman으로 기능 테스트를 진행할 때에도 올바른 기능일지라도 데이터 형식 설정을 잘못해서 오류가 나는 경우가 많아서, 이번 기회에 이것들을 간단하게 정리해보려고 한다. RestApi와 JSON https://100won-developer.tistory.com/21 API란 무엇인가 (+REST API) API란? sw가 다른 sw로부터 지정된 형식으로 요청하거나, 명령을 받을 수 있는 수단. ▶ 어떤 기술이나 제품이 아니라 “형식”이기 때문에 어떤 언어나 어떤 프.. 2023. 3. 8.
리스트와 문자열은 동일한가?? 파이썬 문법에서 문자열을 리스트처럼 다룰 수가 있기에 종종 이 둘이 같은지 헷갈릴 때가 있다. 예를 들면 name = "kim min su" 라고 하면, name[1] 이라고 할 때 i가 출력됨을 알 수 있다. 그렇다면 파이썬에서 리스트와 문자열은 동일하다고 말할 수 있을까?? 정답은 "No"이다. 리스트와 문자열은 모두 시퀀스(sequence) 자료형이지만, 내부 구현과 사용 방법에서 차이가 있다. 예를 들어, 리스트는 가변(mutable) 자료형라서 원소들을 추가, 삭제, 변경할 수 있지만, 문자열은 불변(immutable) 자료형이라 원소를 변경할 수 없다. 이는 굉장히 굉장히 중요한 사실이다. 이걸 모르고 문자열을 리스트처럼 생각하고 계속 바꾸려고 시도한다면 코딩 테스트에서 낭패를 볼 수 있다. .. 2023. 3. 6.
API 명세서 작성하기 예전에 api 관련 글을 쓴 적이 있다. https://100won-developer.tistory.com/21 API란 무엇인가 (+REST API) API sw가 다른 sw로부터 지정된 형식으로 요청하거나, 명령을 받을 수 있는 수단. ▶ 어떤 기술이나 제품이 아니라 “형식”이기 때문에 어떤 언어나 어떤 프레임워크를 쓰든, 어떤 SW를 만들든 이 100won-developer.tistory.com 이때는 api에 대해서 간단히 알아보고 rest api는 무엇인지, 전체적인 맥락을 가볍게 훑어보았다. 이번에는 API 명세서 작성하는 방법을 써보려고 한다. API 명세서란?? API (Application Programming Interface) 명세서는 소프트웨어 개발자들이 서로 다른 시스템이나 프로그.. 2023. 2. 19.
PUT과 PATCH의 차이점 PUT과 PATCH는 모두 HTTP 메소드 중에서 데이터를 수정하기 위한 메소드이다. 둘 다 수정을 담당하는 메소드라서 어떤 것을 언제 사용해야하는지 헷갈리는데, 일반적으로 PUT과 PATCH는 다음과 같이 분류한다. PUT은 전체 엔티티를 업데이트하기 위해 사용되는 메소드이다. 전체를 교체하기 때문에 PUT을 쓸 때에는 모든 필드가 필요해서 클라이언트가 업데이트하고자 하는 리소스의 전체 표현을 제공해야 한다. 만약 PUT을 쓸 때 필드의 전체가 아니라 일부만을 제공한다면 제공한 일부를 제외하고 나머지 모든 필드값이 NULL이 되거나 default값이 되므로 주의해야한다. → 그래서 이런 실수를 방지하고자 일부러 PATCH만 쓰도록 개발자들끼리 약속하기도 한다. PATCH는 부분적인 업데이트 즉 엔티티의.. 2023. 2. 19.
프레임워크와 라이브러리의 차이 프레임워크(Framework)와 라이브러리(Library)는 목적과 동작 방식에서 차이가 있다. 프레임워크 프레임워크는 특정한 문제를 해결하기 위해 필요한 구성 요소들을 제공하는 일종의 뼈대이다. 개발자가 애플리케이션의 기본 구조와 흐름을 결정하고, 프레임워크에서 제공하는 규칙과 템플릿을 따르며, 비즈니스 로직을 작성하는 방식이다. 프레임워크는 일정한 규칙에 따라 개발을 진행하므로, 일관성 있는 코드를 작성하고, 생산성을 높이는 데 도움이 된다. 대표적인 프레임워크로는 Spring, Django, Ruby on Rails 등이 있다. // 즉, 프레임워크는 애플리케이션 개발을 위한 뼈대를 제공하고, 개발자가 규칙과 템플릿을 따라 애플리케이션을 구현하는 방식이다. 라이브러리 라이브러리는 개발자가 필요에 따.. 2023. 2. 18.
github로 협업하기 (초보자용 AtoZ) "깃허브로 협업한다"라는 말은 자주 듣지만 정확히 어떻게 이루어지는지 잘 모르는 경우가 많고 실제로 해도 깃허브 기능을 제대로 쓰지 못하는 경우도 많다. 팀프로젝트를 할때마다 깃허브는 항상 새로웠던 경험이 있어서... 이제는 그러지 않기 위해 정리를 해보려고 한다. 협업을 위한 repository를 github에 만든다. 이 repository가 바로 우리가 코드를 올리는 장소인 것이다. 이때, 만약 웹서비스를 만든다고 하면 FE와 BE가 있을텐데 이 둘을 나누느냐 마느냐도 선택해야한다. 결론부터 이야기하면 FE레포와 BE레포를 따로 파는 것이 좋다. 만약 하나의 레포에 만든다고 하면 FE/BE 폴더를 각각 따로 만들어서 해주면 되는데 이때 문제가 있다. 먼저, branch별로 기능을 관리하기가 어렵다... 2023. 2. 18.