에러내용

 

해결 방법

 

1. Ctrl + D으로 터미널 창을 닫거나 Enter키를 눌러서 해보았습니다.  >>> 터미널 먹통되어서 안먹힘

2. 작업관리자가서 터미널을 우클릭하고 작업 끝내기를 하였습니다. >>> 터미널 비밀번호 입력하고 꺼짐

3.  구글링 하기로 하였습니다.   =>

 

 

[1] 다음  위 에러내용에서 떴었던 오류와 동일한 화면을 확인

ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)

https://jins-coding-blog.tistory.com/33

 

mysql 윈도우 cmd터미널로 연결하는 법, 오류 발생

mysql 은 워크벤치나 테이블플러스 같은 소프트웨어로 접근하는 것 이외에도 윈도우cmd로 접근하는 방법도 있다. 1. 연결하는 법, 오류 해결! mysql -u root -p = mysql -u(ser) (유저계정이름) -p(assword) 를

jins-coding-blog.tistory.com

 

[2]  서비스에 가서 mysql 찾고  실행시켜주었습니다. 위의 시작을 눌러주십시오

 

[3] 그리고 다시 실행해보겠습니다. => 정상 실행 되었습니다. 

 

 

 

 

 

 localhost , 8080

 

스프링 웹 서비스를 실행하면  localhost:8080 에서 
스프링 웹서비스가 보입니다. 거기에서 localhost는
무엇일까요?  8080은 뭐고요...

 

 localhost 

컴퓨터 네트워크 기능을 시험하기 위해 가상으로 인터넷망에 연결된것처럼  할당하는 인터넷 주소
https://ko.wikipedia.org/wiki/Localhost

 

지금 티스토리를 작성하고있는  노트북을 가리키는 것입니다. 위키백과 정의처럼  가상으로 연결된것처럼이기때문에

테스트를 할때  주로 이용됩니다. 

 

8080

 

 8080은 내 컴퓨터(localhost)에서  8080포트로  스프링 웹서비스를 이용한다는 것입니다. 

또한,  나의 컴퓨터에서 실행한  로컬서버(즉 localhost)는  외부에서 접근이 불가합니다. 

 


Get , Post  ,  Put ,  Patch , Delete 

 

Get 

 

 1. 네가  크롬 브라우저를 실행하고  https://wikidocs.net/  이라고 입력합니다.  

 2. 서버로  해당 url를  요청한 것입니다.  

 3. 서버에서 해당 url를 처리해서  클라이언트(1번측) 에게 응답으로 보냅니다. 

 

그래서 Get 요청은  서버에게 데이터를  조회혹은 읽기 목적으로 이용됩니다. 

 

POST

 

 1.  회원가입 폼이 있다해봅시다. 각각 입력필드에는  아이디 , 비밀번호가 있습니다. 회원가입버튼이 있습니다.  

 2.  아이디 , 비밀번호를 입력합니다. 

 3.  폼 회원가입버튼을 클릭합니다. 이때  아이디 , 비밀번호는 브라우저 주소창에 노출이 안됩니다. 

 4.   유저 데이터베이스에서  아이디 , 비밀번호가 저장됩니다.  

  

이와같이  폼 제출 동작에 이용됩니다. 또한  데이터가 노출이 안되어 로그인 , 회원가입에서 주로 쓰입니다. 

 

PATCH

 

1.  할일 목록이 있습니다.  이것은 현재 진행중에 속해있습니다. 저희는  종료로 이동시키고 싶습니다. 

     이때 종료버튼이 할일마다 존재합니다.

2. 저는 어느 할일이 끝나서 그 할일을 종료로 이동시킬려고 종료버튼을 클릭합니다. 

3.  종료로 그 할일이 이동됩니다. 

 

이렇게  일부분을 수정할때 이용됩니다.   

 

 PUT

 

 1.  티스토리 게시글이 있습니다. 그런데 이 게시글의 제목과 내용을 전부 수정하여야 됩니다. 

  옆에는  글 수정 버튼이 존재합니다.

 2.  글 수정을 클릭합니다.  수정 창이 활성화됩니다. 

 3.  제가 제목, 내용을 수정합니다.  맨 아래  완료버튼을 누릅니다. 

 4.  여러저러 옵션이 있습니다. 클릭합니다.

 5.  확인을 누릅니다.  

 

 이렇게 전체부분을 수정할때 이용됩니다. 

 

 

DELETE 

 

 1.  게시글이 있습니다. 삭제한다고 합시다. 

  2.  삭제버튼을 클릭합니다.  

  3.  삭제를 하시겠습니까라고 메세지창이 나옵니다.  >>> 예 / 아니오가 있습니다. 

  4.  예를 누를시 >>>> 삭제됩니다.

       아니오를 누를시 >>>> 삭제되지 않습니다. 

  5.  모든 게시글에서  삭제된 게시글이 없는 데이터가 반환될것입니다.  

 

  이렇게 게시글 삭제 등에 많이 이용됩니다. 

질문. 뜬금없이 인텔리제이 대신에 STS를 선택이유는?  

 

대학교 전공시간때에 스프링 프레임워크 수업을 들으면서 코드 에디터를 STS를 이용하였습니다.

그러했던 과거를 회상하고, 잘 몰랐던 스프링부트에 대해 파해치고 싶었습니다. 

 

질문.  참고하고 있는 자료는

 

다음은 제가 참고하고 있는 자료입니다.

https://wikidocs.net/160048

 

1-02 스프링 부트 개발 환경 준비하기

* `[완성 소스]` : [https://github.com/pahkey/sbb3/tree/v1.02](https://github.com/pahkey/sbb3/tree/v1.02…

wikidocs.net

 

질문. STS4는 어디에서 설치할수 있나요? 그리고, 이클립스에서만 사용가능하나요 

 

설치사이트는 여기입니다. 

=> https://spring.io/tools

 

Spring | Tools

 

spring.io

비쥬얼 스튜디오 코드 또는 이클립스에서도 이용이 가능합니다.

 


비쥬얼 스튜디오코드에서 프로젝트 생성하기 

 

 

저는  비쥬얼 스튜디오 코드에서 시작을 해보겠습니다. 

https://developerkkyu37.tistory.com/79

 

[Spring] VScode에서 간단한 스프링 프로젝트 만들기

1. 자바 설치 (1) JDK 다운로드 https://www.oracle.com/kr/java/technologies/downloads/#java17 Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts. www.or

developerkkyu37.tistory.com

위  블로그 글을 참고하여 비쥬얼 스튜디오 코드에서 스프링 프로젝트를 생성하였습니다. 

 

 

스프링 부트 프로젝트 실행하기 

 

(1) 실행전 다음과 같이 코드를 작성해주세요!!

....
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
// 5번째 줄은 org.springframework.web.bind.annotation에 속해있는 000 전체를 불러온다.
import org.springframework.web.bind.annotation.*;

// 스프링부트 어플리케이션 설정 소스
@SpringBootApplication
public class ProjectApplication {
	public static void main(String[] args) {
		SpringApplication.run(ProjectApplication.class, args);
	}
}

// 님이 localhost:8080 포트에 접근하면 브라우저에 hello가 띄어질것이다. 

@RestController
/**
 * InnerProjectApplication
 */
 class HelloWorld{
 // 여기서 /는 스프링 부트 어플리케이션의 첫시작점입니다. 
     @GetMapping("/")
    public String greet(){
		return "hello"; // 여러분의 브라우저에는 hello가 보입니다. return은 반환한다는 의미
	}
 }

 

 (2) 그리고 터미널을 열어주세요

 

참고로 저는 여기에서 git을 설치했을때 같이 딸려온 git bash 터미널을 이용합니다. 

리눅스 명령어에 익숙해지는데 유용하기 때문입니다. 

# 프로젝트 파일들이 있는 경로로 이동해주세요. cd 명령어로 이동합니다.
$ cd 프로젝트 경로 

# ./gradlew를 이용해서 gradlew를 설치해주세요
$ ./gradlew 

# ./gradlew bootRun을 이용해서 실행합니다.
$ ./gradlew bootRun

 

(3) 크롬 브라우저를 실행하고 , 브라우저 주소 창에  다음과 같이 입력해주세요. 아래 텍스트를 브라우저에 붙여주세요 

localhost:8080/

 

 

 

 

 

 

'log: java' 카테고리의 다른 글

JAVA 실행 환경 구축 & 테스트 ( feat. vsCode )  (0) 2024.06.08

참고 

https://fifo22.tistory.com/34

 

윈도우10 Window10 환경에서 Apache, PHP 설치하기

다른 블로그 보고 따라하다가 경로, 윈도우 비트 달라서 개뻘짓해서 빡쳐서 쓴는 글 내 컴퓨터가 win 64비트인지 확인해야함 이건 철저히 win 64비트를 위한 글임 1. 먼저 아파치 설치 https://www.apache

fifo22.tistory.com

 


아파치

 

 

1. 아파치 다운로드 

 

      질문) 내 컴퓨터가 몇 비트인지 확인하기

           i)  설정  >>> 시스템 >>> 정보 에서 장치 사양 확인하세요

           ii)  시스템 종류란에 나와있습니다. 

그다음에는 아파치 사이트에 들어가서 아파치를 설치합니다. 

https://www.apachelounge.com/download/

 

Apache VS17 binaries and modules download

 

www.apachelounge.com

 

c드라이브에 아파치 파일을 압축해제하였습니다. 

 

2. 아파치 설치 & 실행 & 테스트

 

[1] 아파치 설치하기 

httpd.exe -k install 
# 관리자권한으로 cmd 실행 
# 다음 명령어를 입력하고 실행해주세요

 

 

다음같이 에러가 나온다면  아래글을 참고해주세요

https://mainia.tistory.com/5490

 

아파치 Apache 웹 서버 AH00558 : Could not reliable determine the server’s fully qualified domain name 에러 해결하

아파치 웹 서버를 다운 받아 실행했는데 AH00558 에러가 난다면 설정을 변경해 줘야 합니다. 윈도우에서 실행했다면 httpd.conf 라는 아파치 설정이 저장된 파일을 찾습니다. 리눅스 계열 OS 라면 appac

mainia.tistory.com

 

 

1. 아파치 폴더내에 httpd.conf 파일에 들어갑니다.

2. 그리고, ServerName  부분 주석을 해제합니다. 

3. 담과 같이 작성해주세요 

ServerName localhost

 

[2] 아파치를 종료 & 재실행

 

실행하였을때 다음 화면이 뜬다면 성공입니다. 


PHP

 

 

1. php 다운 & 압축 

 

Thread Safe 버전이고 자신의 운영체제 비트에 맞는 버전을 설치해주세요!!!

그리고 c 드라이브에 폴더를 생성하고  거기에 압축을 풀어주세요 

 


 

2. php 폴더내 파일 들어가서  세팅

 

 

참고 : https://programming-workspace.tistory.com/19

 

[Web Server] 윈도우에서 아파치 웹서버와 PHP 8.0 연동하기

아파치 웹서버와 PHP8.0 버전의 연동 방법에 대해서 알아보겠습니다. 블로그는 아래의 글들을 참고하여 작성하였습니다 :) 더보기 jimnong.tistory.com/613 gracefullight.dev/2017/01/13/%EB%A1%9C%EC%BB%AC-%EC%9B%B9%EC%

programming-workspace.tistory.com

여기에서 저의 입맛에 맞게 수정하였습니다. 

 

 php.ini에서 옵션 활성화하기 

 

에러 관련

 

아파치 폴더 conf 폴더내 http.conf  파일 맨 아래 에 다음과 같이 추가하기

<IfModule ssl_module> 내부에 다음과 같이 추가하기 

 

Apache24 의 htdocs 폴더에 phpinfo 라는이름의 php 파일 추가 

 

다음과 같이  코드가 나옵니다.

그러면 아파치를 다시 실행해주세요 다음과 같이 나오면 성공입니다. 

 

하게된 계기 

제가 좋아하는 선수 등록 어플리케이션을 만들다보니
 좋아하는 선수만 추가하고 유지하고 싶었습니다.
그러자고 DB에 저장하니 낭비라고 생각하였습니다.
그래서 웹 브라우저에서 지원하는 저장소인 
로컬스토리지를 이용하게 되었습니다.

 

정리 

 

로컬스토리지 

 

- HTML5 에서  지원하는 웹 브라우저 저장소입니다.

- 저장 용량은 최대  5MB 입니다. 

-  데이터가 평문으로 저장되어 있으니 비밀번호와 같은 민감한 데이터는 저장하지 말아주세요

 

세션 스토리지 

 

- HTML5에서 지원하는 웹 브라우저 저장소입니다. 

- 저장 용량은 최대 5MB입니다. 

-  브라우저 탭을 닫아도 유지되는 로컬스토리지와 달리 브라우저탭을 닫으면 세션스토리지에 데이터가 사라집니다. 

 


 

사용법 

 

(1) localStorage.setItem 

로컬스토리지에서 데이터를 저장하는 메서드입니다. 

// 키 - 값 형식으로 저장합니다.
// JSON.stringify 메서드를 이용해서 문자열화해서 저장해야됩니다. 
localStorage.setItem("player", JSON.stringify(playerDB));

// localStorage는 데이터를 저장할때  문자열 , 객체 , 배열을 저장할수 있습니다.

 

(2) localStorage.getItem 

로컬스토리지에서 데이터를 불러올때 사용하는 메서드입니다. 

// 로컬스토리지에 저장된 데이터를 사용하고 싶을 때,사용합니다.
// JSON.parse : 자바스크립트 객체로 변환
let storageData = JSON.parse(localStorage.getItem("키"))

 

(3) localStorage.removeItem 

로컬스토리지에 저장된 데이터를 삭제할때 사용하는 메서드입니다.

// 로컬스토리지에서 키에 해당하는 데이터가 삭제됩니다. 
localStorage.removeItem("키");

 

(4) localStorage.clear() 

로컬스토리지를 비울때 사용합니다. 

localStorage.clear() // 로컬스토리지 전체가 비워집니다.

프로젝트에서 이용

 

 (1) 선수 등록 

 선수 등록 폼을 입력합니다.  >>>  배열에 선수 정보를 저장합니다.  >>> 배열을 로컬스토리지에 저장됩니다.   

 

userInputForm.addEventListener("submit", function (event) {
 
  // 서버로 전송하고 페이지 새로고침 동작 방지 
  event.preventDefault();

  // 선수가 입력한 데이터가 저장됩니다. 
  const playerInfo = {
    id: crypto.randomUUID(),
    name: userName.value,
    age: userAge.value,
    team: userTeam.value,
    country: userCountry.value,
  };

  // playerDB 배열에 추가합니다. 
  playerDB.push(playerInfo);

  // 로컬스토리지 저장소에서 player라는 키에 값을 저장합니다. 
  localStorage.setItem("player", JSON.stringify(playerDB));
  
  ...

 

(2) 선수 수정 

  로컬스토리지에서 player 데이터를 불러옵니다.  >>>   로컬 스토리지에 이전 데이터 대신 수정된 데이터가 존재하는 데이터로 갱신합니다. >>>  업데이트 된 선수 데이터 기반으로 업데이트합니다. 
function editButton(id) {
  // i 로컬스토리지에서 player관련 데이터를 가져옵니다.
  let playerDatas = JSON.parse(localStorage.getItem("player"));

  // ii 수정이 반영된 배열을 만듭니다.
  playerDatas = playerDatas.map((item) => {
    if (item.id === id) {
      item.name = window.prompt("이름을 입력해주세요");
      item.age = Number(window.prompt("나이를 입력해주세요"));
      item.team = window.prompt("팀을 입력해주세요");
      item.country = window.prompt("국가를 입력해주세요");
    }
    return item;
  });

  // iii. 등록한 선수 정보 보여주는 부분 리셋 후 업로드
  playerDisplay.innerHTML = "";
  playerDatas.forEach((player) => {
    playerDisplay.innerHTML += `
   <figure>
    <h1>${player.name}</h1>
    <span>${player.age}</span>
    <span>${player.team}</span>
    <span>${player.country}</span>
    <button onclick="deleteButton('${player.id}')">delete</button>
    <button onclick="editButton('${player.id})">edit</button>
   </figure>

   `;
  });
}

 

(3) 선수 삭제 

    로컬스토리지에서 선수 데이터를 가져옵니다.  >>>   삭제된 데이터가 포함되지 않은 배열로  업데이트합니다.  >> 

   기존 선수등록 뷰를  리셋합니다.  >>>  업데이트 된 선수 정보를 선수등록뷰에 보여줍니다. 
// 선수 정보를 삭제하는 함수
function deleteButton(id) {
  // i. 로컬 스토리지에서 선수 데이터 가져오기
  let playerDatas = JSON.parse(localStorage.getItem("player"));

  /* 
     ii. playerDatas 에서  삭제된 데이터 id 제외한 배열 반환 
         localStorage 내부 갱신 
  */
  playerDatas = playerDatas.filter((player) => player.id !== id);
  localStorage.setItem("player", JSON.stringify(playerDatas));

  // iii. 등록한 선수 정보 보여주는 부분 리셋 후 업로드
  playerDisplay.innerHTML = "";
  playerDatas.forEach((player) => {
    playerDisplay.innerHTML += `
   <figure>
    <h1>${player.name}</h1>
    <span>${player.age}</span>
    <span>${player.team}</span>
    <span>${player.country}</span>
    <button onclick="deleteButton('${player.id}')">delete</button>
    <button onclick="editButton('${player.id})">edit</button>
   </figure>
   
   `;
  });
}

 

끝맺음

오늘은 기존  선수 등록 , 선수 수정 , 선수 삭제를  로컬스토리지로 구현하였습니다.~~~

 

'log : vanilaJs' 카테고리의 다른 글

선수 정보 업데이트  (0) 2024.06.01
선수 등록 , 삭제 기능 만들어보기 (with vanilaJS )  (0) 2024.06.01
vsCode 가 설치되었다고 하고
자바 실행환경을 구축해보겠습니다.

 


 

jdk 공식 사이트에 들어갑니다. 가서 설치합니다.  여러분의 OS에 맞는 자바 버전을 다운받으세요

 


 

 환경 변수 설정해줍니다. 

 

참고

https://velog.io/@bi-sz/Java-%ED%99%98%EA%B2%BD-%EB%B3%80%EC%88%98-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0 

 

[Java] 환경 변수 설정하기

[Java] 환경 변수 설정하기

velog.io

 

1. JAVA_HOME  변수를 새로 만들고, 값을 추가합니다. ( 여기서 값은 당신이 jdk를 설치한 경로!!! )

 

 

2.  CLASSPATH 도 없으면 다음과 같이 추가해줍시다.    

 

3.  시스템 변수의 path도  같이  설정해줍니다. 

 


 터미널에서 자바 버전을 체크 해봅니다. 추가적으로  javac 도 말입니다. 

 

(1) java --version 

 

(2) javac 


vsCode에서  자바 확장팩을 설치합니다. 


자바  테스트 코드로 vsCode에서 실행해보기 

// hello.java 로 해주세요

public class hello {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

 

'log: java' 카테고리의 다른 글

스프링 부트 프로젝트 생성 부터 실행까지  (0) 2024.06.19
어느날 제가 
bookinHome 
프로젝트를 리액트로 생성하고
깃에 올릴려고 하였습니다. 
그랬더니 node_modules가 안올라가더라고요

 

그래서  저의 bookinHome 코드를 git clone하여  내려받은다음  폴더 내부를 뜯어보았습니다.

그러고보니 .gitignore라는 파일이 눈에 들어왔습니다. 

 

그래서  .gitignore의 정의를 찾아보았습니다. 

 

 깃허브에서 무시하길 원하는 파일의 이름 또는 폴더의 이름을 적으면 되는 파일입니다. 

그래서 깃허브에 올라가지를 않는 구나 ㅎㅎㅎㅎ 

 

 

 

1. 깃허브에 올리면 치명타되는 파일이나 폴더를 선정한다.
2. .gitignore 파일을 생성한다.
3.  1번에서 선정한 파일, 폴더를 작성한다.
4. 깃허브가 무시한다. 

 

 

'log : 기타' 카테고리의 다른 글

내 PC에 설치된 MySQL 서버 에러  (0) 2024.06.23
시간 남아서 정리  (0) 2024.06.19
git관련 기타 모읍집  (0) 2024.06.03
내가 리눅스에서 즐겨 쓰는 명령어 모읍집  (0) 2024.06.02

 

git add 만 하였을 때 

 

아무것도 읽혀지지 않아집니다. 

$ git add 
Nothing specified, nothing added.
hint: Maybe you wanted to say 'git add .'? ## 정답은 여기 있습니다.
hint: Turn this message off by running
hint: "git config advice.addEmptyPathspec false"

# 1. 파일 하나만 add 하고 싶다면
git add 파일1

# 2. 전부를 add하고 싶다면
git add .

저 같은 경우에는 git add .를 많이 사용합니다. add 해야 될게 많아서요

 

추가) add가 정상적으로 되었는지 확인하고 싶다면 

andan@LAPTOP-7I2GF3EM MINGW64 ~/Desktop/bookManage/my-app (master)     
$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   package-lock.json
        modified:   package.json

 

 

git commit을 vscode 에디터 git bash 터미널에서 할 때

 

vscode git 터미널에서  다음과 같은 명령어를 입력해주세요

 

vscode에서는  git commit 명령어시 창이 하나 나옵니다.  여기에서 커밋 내역을 작성하시고 오른쪽 브이 표시를 눌러주시면반영됩니다. 

 

 

push 시 반영이 안되고 에러가 나오는 이슈  1

# 에러내용
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.

 

추가 )  git 과 gitHub 는 무엇인가 

 

git은 형상 관리 소프트웨어를 의미합니다.  로컬 즉 나의 컴퓨터에 설치됩니다.

gitHub는 로컬의 소스코드를 저장하는 원격 저장소입니다. 

 

그러면 여기에서 오류가 나온 이유는 => 원격 저장소를 읽어올 수 없습니다.

어떻게 해결할까 => remote 명령어로  원격 저장소 추가하셈

git remote add origin [원격 저장소 주소]

 

[원격 저장소 주소] 다음 사진에서 오른쪽에  빨간 밑줄을 의미합니다. 

 

push 시 반영이 안되고 에러가 나오는 이슈  2

error: failed to push some refs to 'https://github.com/Andante23/BookInHome.git'
hint: Updates were rejected because the remote contains work that you do not
hint: have locally. This is usually caused by another repository pushing to
hint: the same ref. If you want to integrate the remote changes, use
hint: 'git pull' before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

# 너가 push하기전에 git pull해서 당겨보셈, 무엇인가 끌어올런지 모르오니...

저 같은 경우에는  깃허브에 리드미가 있는데  강제 병합을 한다음에 다시 작성하기로 하였습니다. 

그리고  git push origin +master 명려어는  기존 레포지토리에 있던 파일이 날라가고 마지막 push 내용만

들어갑니다.

# 이 명령어는 가끔적 사용하지 말아주세여. 위험해여

andan@LAPTOP-7I2GF3EM MINGW64 ~/Desktop/bookManage/my-app (master)
$ git push origin +master
Enumerating objects: 26, done.
Counting objects: 100% (26/26), done.
Delta compression using up to 4 threads
Compressing objects: 100% (26/26), done.
Writing objects: 100% (26/26), 185.69 KiB | 3.04 MiB/s, done.
Total 26 (delta 3), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (3/3), done.
To https://github.com/Andante23/BookInHome.git
 + 5a5d5c7...b79c3e0 master -> master (forced update)

 

 

+ Recent posts