[Clone Coding] 인스타그램-프로젝트 생성(1)

Cho Doil·2023년 1월 25일

clone-coding

목록 보기
1/7

🤔 공부하면서 무언가 개발하고 싶은 마음도 많고 아이디어도 많았다.
하지만 아무런 경험이 없이 혼자 모든 것을 개발하는 것은 위험부담이 많다고 생각되어 클론 코딩을 하기로 정했다. 코드와 구성을 따라해보며 전체적인 그림을 이해하고 모르는 부분은 찾아보며 공부하기 위함이다. 여기에 멈추지 않고 나만의 코드나 기능을 추가하는 것을 꿈꾸며 시작해보자.
Java Spring 클론 코딩을 검색한 후 비교적 정보가 많은 인스타그램 만들기를 선택했다. (구글에 검색해도 좋지만 깃허브에 검색해도 많은 자료가 나온다.)

🌱프로젝트 생성

https://start.spring.io

위의 사이트로 들어가면 쉽게 스프링 프로젝트를 시작할 수 있다.

Project: Gradle-Groovy

Language: Java

Spring Boot: 2.7.8

Project Metadata:

  • Group: clone
  • Artifact/Name: chostagram
  • Packaging: Jar
  • Java: 11

Depandencies:

  • Spring Web: 기본적으로 웹을 개발하기 위해 상당히 편리한 기능들을 제공한다. 스프링 MVC, Apache Tomcat 등을 편리하게 사용할 수 있다.
  • Thymeleaf: JSP말고 Thymeleaf를 사용한다. 본인이 Thymeleaf가 더 편하기 때문이다. 다른 이점은 Jar로 패키징해도 상관 없다는 것이고 페이지 소스를 볼 때도 더 깔끔하다는 장점이 있다.
  • Lombok: 여러 기능을 annotation 한 줄로 사용하게 해준다. 예를 들어 getter, setter 등 한 줄이면 그냥 사용 가능하다.
  • Spring Data JPA: Spring에서 SQL를 사용하기 위해 여러가지 방법이 있지만 JPA가 가장 편리한 것 같다.
  • Spring Boot Dev Tools: 여러 편리한 기능을 제공한다. 예를 들면 로컬 서버를 띄운 상태에서 html 코드를 변경했을 경우 서버를 재시작할 필요없이 다시 빌딩만 해주면 서버에 적용된다.
  • MariaDB Driver: 본인은 PostgreSQL를 배웠지만 찾아보니 postgres는 대규모 프로젝트에 더 강점이 있다고 한다. MariaDB는 같은 RDBS이지만 간단한 SQL에 더 빠른 강점이 있다고 한다. 클론 코딩 프로젝트에는 MariaDB가 더 어울리는 듯 하다.
  • Spring Security: Spring 기반의 애플리케이션의 보안을 담당하는 프레임워크이다.
  • OAuth2 Client: 이건 써본 적이 없다. 찾아보니 Spring Security를 위해 사용되는 것 같다. 로그인을 통한 인증과 권한 처리를 쉽게 해준다고 한다.
    아래 사이트에 들어가면 잘 나와있다.
    참고:
    https://docs.spring.io/spring-security/reference/servlet/oauth2/client/index.html

개발 환경

  • IDE: IntelliJ IDEA
  • OS: Mac OS(M1) Ventura 13
  • Language: Java 11
  • Framework: Spring Boot 2.7.8
  • Data Base: MariaDB
  • Build: Gradle 7.6

GitHub에 연결

다들 아시다시피 git으로 프로젝트를 관리하면 편리하다.
이와 관련한 정보는 다른 블로그에 찾아보면 더 자세히 나와있을 것이다.
본인은 위와 같이 프로젝트를 생성해서 압축을 풀고 원하는 로컬 저장소에 위치시키고 github에 repo를 생성했다. 터미널에서 git init -> git remote add origin [git repo 주소] -> git add . -> git commit -m "init commit" -> git push origin master으로 간단하게 로컬과 연결했다. 다른 방법으로도 가능하니 원하는 방법으로 하면 된다.

마지막으로

이제 시작이니 다음 게시글이 얼마나 자세히 작성할지 솔직히 모르겠다. 그리고 애매하게 작성했다고 느낄 수 있는데 본인이 블로그가 처음이라 그렇다 이해해주길.. 첫 블로그에 첫 게시글이니 생각보다 작성하기 힘들다... 본인이 초보 개발자로서 이제 시작이니 힘내서 해볼 생각이다.
틀린 정보나 내용은 따끔하게 혼내주시길!

참고한 깃허브 주소:
https://github.com/moonsbeen626/clone_instargram

profile
초보 개발자의 저장소

0개의 댓글