본문 바로가기

전체 글322

Follow 기능 구현 프로젝트를 진행중 Follow기능을 구현하기로해 공부한 내용을 적어본다. 사용한 기술 Java 11 MyBatis Spring Frame work 2.7.14 MariaDB IntelliJ Ultimate 나는 Backend 담당이여서 Back에 대한 코드밖에 제공하지 못한다..틈나는대로 적은거라 테스트는 PostMan으로 진행할 것이다. 요구사항 회원의 Follow 기능 구현 팔로우 관계를 나타내는 테이블을 만들고., 팔로우 및 언팔로우 기능을 제공하는 API를 설계 팔로워 및 팔로잉 조회 특정 사용자의 팔로워와 팔로잉 목록을 조회하는 API를 제공 FK없이 테이블 설계 Foreign Key를 사용하지 않고 테이블 간의 관계를 관리 먼저 팔로우 테이블 설계를 한다. CREATE TABLE follows.. 2023. 8. 24.
Tomcat을 외장서버로 사용해보기 보통 웹 서버를 만들어 본다면 가장 먼저 접하게 되는 서버 프로그램인 아파치 톰캣(Apache Tomcat) 이 아파치톰캣은 아파치 재단에서 제공하는 공개 소프트웨어 웹 애플리케이션 서버 (WAS)이다. 톰캣이란 의미는 숫고양이를 의미하는데 개방적이고 참여적인 환경에서 개발되어왔으며 아파치 라이센스 버전2로 배포된다. 이 아파치톰캣 프로젝트는 전 세계의 최고의 개발자들과 협력하기 위한 것이다. ✋WAS란?! Web Application Server의 준말로써 웹 응용 프로그램이 설치되어 작동하는 서버 및 이를 위해 설치되는 미들웨어를 말하며, 웹 서버와 구분하여 말해보자면 웹 서버는 단순히 HTTP로 웹 페이지를 보여주는 정적인 역할이라면 WAS는 웹 서버와 연계되어 동적인 로직과 더 무거운 동작을 수행.. 2023. 8. 18.
npm 설치하기 npx는 npm의 보안이 강화된 버전이다. 기능은 같다. 먼저 터미널창에서 아래와 같이 입력하고 진행했다. 설치할때는 전역으로 설치하기 위해 -g 옵션을 넣어주었다. npm install -g create-react-app 그런 다음 수업진행을 위해 react라는 폴더를 만들어 준 후에 react폴더에서 hello라는 폴더도 만들기 위해 터미널에서 마저 진행해주었다. create-react-app hello Happy hackin! 이라는 문구가 출력되면 완료된 것이다. 그런 다음 npm start 를 입력하면 localhost:3000으로 서버가 실행이 되었다. 여기까지 알아보았으면 이제 vs code로 진행을 해보겠다. vs code에서 react 개발을 위해 확장(Extension)을 설치해보겠다... 2023. 8. 11.
Node.js 설치하기 및 version 내리기 Feat.brew 예전에 맥북에서 설치한적이 있는지 생각이 안나서 먼저 node의 버전을 확인해 보았다. 없는걸 확인한 후에 brew install node명령어를 통해 설치를 진행하였다. brew install node 그 이후에 설치된 버전을 확인해 보았다. node -v 확인해 보니 버전이 20.5.1 최신버전이였다. 학원 수업에서는 18.17.1을 사용하기 때문에 버전을 내려줄 필요가 있었다. 버전을 내리기 위해 brew search node를 실행하면 아래와 같은 화면이 출력이 된다. brew search node 여기서 버전을 골라서 설치해주자 brew install node@18 그런 다음 기존에 연결되었던 node의 연결을 끊어준 후 brew unlink node 설치한 18버전의 node를 연결해 준다. .. 2023. 8. 11.
20230807 Kotlin Constructor package com.example.hellokotlin class Human{ val name:String //String type을 전달 받는 생성자 constructor(name:String){ this.name=name } } fun main(){ val h1=Human("뉴진스") } 위와 같이 class에서 지정한 type을 생성자의 인자로 전달을 해주어야지 오류가 발생하지 않는다. class Human2 constructor(name:String){ val name:String init { this.name=name } } 위의 Human1 Class를 Human2 Class와 같은 형태로도 정의 할 수 있다. 이를 더 줄이면 아래와 같이 코드를 작성할 수 있다. class Human3 co.. 2023. 8. 7.
DB설계시 제공식별자, 시스템 생성 식별자의 장단점 1.사용자 제공 식별자 (예: 이메일 또는 사용자 이름) 장점: 사용자가 기억하기 쉽고, 로그인 시스템 등에서 자연스럽게 사용할 수 있다. 단점: 변경될 수 있으므로, 사용자가 이메일 주소나 사용자 이름을 변경하면 연결된 모든 정보를 업데이트해야 할 수도 있다. 또한 보안 문제로 예를 들어, 사용자 이메일이 공개적으로 알려져 있으면 스패밍 또는 사기에 이용될 수 있다. 2.시스템 생성 식별자 (예: 자동 증가 ID, UUID) 장점: 이 식별자는 시스템에 의해 제어되므로 변경되지 않는다. 이를 통해 데이터 일관성을 유지하고 보안 문제를 방지할 수 있다. 단점: 사용자가 기억하기 어렵다. 따라서 사용자 인터페이스에서는 이 식별자를 직접 사용하기보다는 사용자 제공 식별자를 사용하는 것이 일반적. 나는 개발자.. 2023. 8. 6.
20230803 Kotlin package com.example.hellokotlin fun main(){ val mem:MutableMap = mutableMapOf() //Map에 데이터 넣는 방법1 mem.put("num", 1) mem.put("name", "김구라") mem.put("isMan", true) //수정가능한 Map val mem2 = mutableMapOf() //Map에 데이터 넣는 방법2 mem2["num"]=2 mem2["name"]="원숭이" mem2["isMan"]=true //MutableMap이기 때문에 수정가능 mem["num"]=999 } 어떤 데이터를 index로 관리를 하고 ReadOnly로 사용하고 싶다면 List를 사용하면 된다. fun main(){ val names:List = li.. 2023. 8. 3.
20230801 Kotlin 하위패키지에 Sender라는 Class를 만들어 send라는 메서드를 만들어주고 Step08_UseJava.kt에서 send메서드를 호출하여 사용해 보았다. Kotlin 파일에서 Java를 사용할 수 있는 것을 배울 수 있었다. //키보드로 부터 입력 받을 수 있는 객체 생성 val scan = Scanner(System.`in`) Kotlin에서는 Scanner Class를 사용할 때 (System.`in`)을 사용해야 한다. in을 문자열로 인식하기 때문에 백틱으로 in을 감싸서 사용해주면된다. //키보드로 부터 입력 받을 수 있는 객체 생성 val scan = Scanner(System.`in`) print("입력:") val msg=scan.nextLine() println("입력 받은 내용 : .. 2023. 8. 1.
20230731 Kotlin Kotlin에서 모든 Class는 기본적으로 final Class를 가진다. 만약 하나의 Class를 상속받거나 하려면 open이라는 예약어를 사용하면 된다. 이렇게 오류가 나지만 Phone Class에 open을 붙여주면 오류가 사라진다. package com.example.hellokotlin /* 클래스 선언시 기본값을 상속을 받지 못하게 되어 있다. 마치 java에서 final class Phone{} 처럼 상속을 받을 수 있게 하려면 open이라는 예약어를 붙여준다. */ open class Phone{ fun call(){ println("전화를 걸어요!") } } class HandPhone : Phone(){ //Phone 클래스를 상속 받기 fun mobileCall(){ println(.. 2023. 8. 1.