안녕하세요 워누입니다!

지난 포스팅에 이어 이번에는 STS4 기본 설정 후 첫 프로젝트를 띄워보고자 합니다. 

 

우선 STS4를 실행해주세요!

첫번째로 세팅할 것은 JRE 설정입니다! 

이제 상단 매뉴에서 [Windows > Reference] 를 클릭해주세요.

 

Preference 창에서 [JAVA > Installed JREs] 매뉴로 접속해보면

위와 같이 STS에 이미 설치된 JRE가 있다는 것을 알 수 있습니다.

그렇지만 저는 이전 포스팅에서 JDK를 설치했었기 때문에 설치한 JDK로 세팅을 바꾸도록 하겠습니다!

.

오른쪽 위 [Add...] 버튼을 클릭해봅시다. 

여기서 [Standard VM]을 선택하고 [Next >] 버튼을 클릭해주세요!

여기서 [Directory]를 클릭한 후 JDK가 설치된 경로의 폴더를 선택해주세요.

그러면 아래와 같이 나올 것입니다!

이제 [Finish] 버튼을 클릭해서 완료해주세요!

그럼 아래와 같이 [Preferernce] 화면으로 돌아오면서 위에서 세팅한 JDK가 함께 추가된 것을 볼 수 있습니다.

새로 설치한 JDK 옆 체크박스를 클릭한 다음 [Apply] 버튼을 클릭해주세요.

이후 왼쪽 매뉴에서 [JAVA > Compiler]를 클릭해주세요!

JDK Compliance level에서 자신이 설치한 JDK 버전과 맞는지 확인해서 수정해주세요!

저는 11버전을 설치했기 때문에 11로 수정했습니다. 

버전 수정이 완료되었다면 [Apply] 버튼을 클릭해줍시다!

.

이번에는 인코딩을 설정해보겠습니다. 

왼쪽 매뉴에서 [General > Content Types]를 클릭해줍시다. 

 

화면 내 Content types 항목 중 Text를 클릭하여 Default encoding이 어떻게 나오는지 확인해주세요!

저는 아무것도 안 떠 있어서 아래와 같이 "UTF-8"을 입력해주었습니다.

 

저처럼 입력을 직접 해주신 분이 계시다면 오른쪽 [Update] 버튼을 꼭 클릭해주세요!

 

[Text] 항목에서 "UTF-8" 적용을 완료했다 하더라도 하위 항목 중

인코딩이 제대로 설정이 안되어있는 케이스들이 있을 수 있어요.

 

저의 경우에는 [Java Properties File]과 [Spring Properties File]이 "ISO-8859-1"으로 세팅이 되어 있었습니다!

이렇게 세팅되어 있는 경우도 있으니 꼭 찾아서 "UTF-8"로 설정을 변경하고 [Update]를 클릭해주세요. 

 

다음은 [General > Workspace] 매뉴로 이동해봅시다!

저는 이미 [Text file encoding] 항목에 "Other: UTF-8"이 잘 적용되어 있었습니다!

만약 다른 인코딩으로 세팅된 분이 있다면 여기도 "UTF-8"로 수정한 다음 [Apply] 버튼을 클릭해주세요!

.

인코딩 세팅을 마무리하고, 마지막으로 [Gradle] 매뉴로 이동해보겠습니다. 

[Java home] 항목에 [Browse] 버튼을 클릭하여 JDK가 설치된 경로를 입력합니다. 

그리고 위와 같이 [Authmatic Project Synchronization] 항목에 체크가 되어 있지 않다면 체크박스 버튼을 클릭해주세요!

 

위와 같이 되었다면 세팅이 정상적으로 마무리 된 것입니다. 

이제 [Apply] 버튼을 클릭한 후 [Apply and Close] 버튼을 클릭해서 [Preference] 화면을 종료해주세요!

.

다시 처음화면으로 돌아왔네요 ㅎㅎ

이제  [Project Explorer]에서 [Create new Spring Starter Project]를 클릭해줍시다!

저는 [Type]을 "Gradle - Groovy"로, [Java Version]을 "11"로, Name은 "Sample", Package 명은 "sample"로 했습니다. 

이 글을 보고 세팅하시는 분들은 PC 환경에 맞게 세팅을 수정해주시고 [Next >] 버튼을 클릭해주세요!

여기서는 스프링 부트 버전 및 의존성을 설정할 수 있어요!

지금은 간단한 웹 프로젝트를 실행할 예정이므로 아래 두 가지만 추가해줍시다🙂

 

[Developer Tools > Spring Boot DevTools]

[Web > Spring Web]

 

다른 의존성에 대한 도구들은 나중에 알아가보도록 하고 우선 [Next] 버튼을 클릭해줍시다!

 

이 화면에서는 Spring Boot의 구성 정보를 확인할 수 있습니다. 

아직 아무것도 모르므로 일단 [Finish] 버튼을 클릭해줍시다!

 

.....? 이 오류는 무엇인가...

 

오류 메세지:

'Import Getting Started Content' has encountered a problem.

NoMatchingConfigurationSelectionException

 

해당 내용을 구글링해서 찾아보니

Spring Boot 3.x 버전으로 사용하려면 JAVA 17 버전 이상으로 세팅이 되어야 한다는군요...

 

처음 다뤄보니 별 실수를 다하는군요..😂

여러분은 저같은 실수 하지 마시고 Spring Boot 버전을 JAVA 버전에 맞게 사용하세요!!

여튼 저는 생성했던 프로젝트를 삭제하고 아래와 같이 다시 생성했습니다. 

(나중에는 JDK 17 버전 다시 설치하고 돌아오겠습니다ㅋㅋ)

처음과 다르게 Spring Boot 버전을 2.7.11로 세팅하고 프로젝트를 생성했습니다!

.

이번에는 문제 없이 정상적으로 생성이 된 것 같군요..!

그렇다면 이제 실제로 Run을 시켜보도록 하겠습니다. 

.

프로젝트를 우클릭한 상태에서 [Run As > Spring Boot App] 을 클릭해주세요!

콘솔 창을 보면 위와 같이 출력된 것을 볼 수 있습니다! 

이 중에서 5번째 줄을 살펴보자면, 

STS에 내장된 Tomcat 서버가 8080 포트로 구동되었다는 사실을 알 수가 있습니다!

그럼 이제, Browser에 접속해서 결과를 볼까요?

.

브라우저를 하나 띄워주시고 "localhost:8080"을 입력해서 접속해주세요!

 

....??? 이번엔 또 무엇인가..싶겠지만 이번에는 다행히 정상적인 결과입니다. 

프로젝트를 띄우기는 했지만 화면에 보이는 부분은 자동으로 만들어지지 않기 때문에 이런 화면이 나온 것이죠!

.

프로그래밍의 첫 관문인 "Hello World!"를 띄워보면 조금이나마 감을 잡을 수 있을 것 같네요 ㅎㅎ

 

이번엔 sample package 밑에 Controller 패키지를 생성해봅시다!

위 화면에서 sample 패키지를 우클릭 한 후 [New > Package]를 클릭합니다!

화면을 띄웠다면 [Name]에 "sample.controller"를 입력해준 후 [Finish]  버튼을 클릭합니다. 

[Finish] 버튼을 클릭하여 완료하면 아래 화면과 같이

sample 패키지 안에 controller 패키지가 추가된 것을 볼 수 있습니다!

이제 controller 패키지 밑에 HelloWorldController 클래스를 생성해봅시다!

controller 패키지 우클릭 후 [New > Class]를 클릭해주세요!

Name에만 "HelloWorldController"라고 이름합시다. 

원래 Java에서는 [public static void main(String[] args)] 항목을 추가하지만

여기서는 그럴 필요 없이 여러 어노테이션들이 대신 기능을 수행해줄겁니다 ㅎㅎ

.

[Finish] 버튼을 클릭하면 아래와 같이 나올 겁니다. 

자, 이제 여기다가 아래의 코드를 작성해볼까요?

 

package sample.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloWorldController {

	@RequestMapping("/")
	public String hello() {
		return "Hello World!";
	}
}

코드에 대하여 짤막하게 설명하자면,

@RestController 어노테이션은 REST 컨트롤러 기능을 수행하도록 하는 어노테이션이며, 

@RequestMapping 어노테이션은 해당 메서드를 실행할 수 있는 주소를 설정하는 어노테이션입니다. 

여기서는 기본 주소를 " / "로 지정하였습니다. 

 

대충 설명했지만 나중에 조금 더 복잡한 코드가 나올 때 자세히 설명드릴 수 있을 것 같아요! 

우선 작성한 코드를 가지고 다시 한 번 프로젝트를 실행하겠습니다!

로그도 정상적으로 실행이 되었구요!

무사히 "Hello World!"도 띄웠습니다!

 .

조금은 다사다난 했지만 Spring Boot의 첫 발걸음을 뗀 기분입니다! 

첫 발걸음을 떼는 다른 분들은 저보다는 덜 실수하기를 바라며 이만 글을 마치겠습니다😀

 

감사합니다!

 

안녕하세요 워누입니다😀

오늘은 윈도우 PC에 Spring Boot 설치하는 방법에 대해서 포스팅하겠습니다! 

 

우선 Spring boot 설치를 하기 전에 JDK는 기본적으로 설치가 되어 있어야 합니다.

JDK 설치가 되어 있지 않으신 분은 아래 사이트에서 JDK를 1.8 버전 이상으로 설치해주세요..!

 

https://www.oracle.com/java/technologies/downloads/

 

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.oracle.com

 

JDK 설치 및 환경 변수 편집 방법은 따로 설명드리지 않고 바로 넘어가도록 할게요😁

편집이 완료되신 분은 아래 사이트로 접속해주세요.

 

https://spring.io/tools

 

Spring | Home

Cloud Your code, any cloud—we’ve got you covered. Connect and scale your services, whatever your platform.

spring.io

 

해당 사이트에 접속하시면 아래와 같이 운영체제에 맞게 다운받을 수 있게 작성이 되어 있어요!

 

여기에서 설치하시는 PC의 운영체제에 맞는 tool을 클릭하시면 됩니다.

저는 여기서 "4.18.0 - WINDOWS X86_64"로 클릭하여 다운로드 받았습니다.

 

다운받은 파일은 "Spring-tool-suite-4-4.18.0.RELEASE.(이하 생략)"라는 이름의 jar 파일입니다!

버전이 업데이트 되면 제가 받은 파일명과는 달라질 수 있을 것 같네요ㅎㅎ

 

 

압축 파일 구성은 위 이미지와 같이 되어 있는데요,

압축을 한번 풀어보겠습니다..!

(압축을 풀어보니 contents.zip 압축파일이 포함되어 있어 함께 해제해 주겠습니다..!)

 

여기 있는 파일을 압축 해제해보니...?!?!

실패한 친구들이 꽤 있긴 해서 걱정되긴 합니다만 (나중에 프로젝트 띄울 때 실패되진 않겠죠..?)

나머지는 압축 해제가 성공적으로 된 것 같네요ㅎㅎ 

 

 

그럼 이제 SpringToolSuite4.exe 파일을 실행해보도록 하죠!

 

클릭해보면 위 화면과 같이 나옵니다!!

 

그리고 eclipse에서 본 것처럼 workspace 경로 설정 단계가 있네요 ㅎㅎ

각자 자신의 환경에 맞게 해당 경로를 수정해주시면 됩니다!

.

그리고 Launch 버튼을 클릭하면..!

 

STS가 정상적으로 실행된 것을 볼 수 있습니다!!

 

이번 포스팅은 여기서 마무리하고 

다음 포스팅에서는 기본 환경 설정 후 첫 프로젝트를 만드는 과정을 포스팅하도록 하겠습니다! 

 

 

안녕하세요 워누입니다😀

오늘은 지난번 정규표현식 2번째 포스팅에서 언급했던 filter_var() 함수에 대하여 포스팅해보고자 합니다!

 

(이메일 유효성 검사를 하는 방법으로 정규표현식과 함께 소개하였으며 자세한 내용은 아래 링크로!!)

https://seoneu.tistory.com/43

 

[PHP] 전화번호, 이메일 유효성 검사 :: 정규표현식 활용 (2)

안녕하세요 워누입니다😀 지난 포스팅에 이어 오늘은 전화번호와 이메일 데이터에 대하여 정규표현식을 이용해 유효성을 검사해보는 방법을 포스팅해보겠습니다! 1. 전화번호 전화번호의 유

seoneu.tistory.com

 

PHP에서 제공하는 filter_var() 함수는 특정한 값을 검사하는 함수로,

두 번째 매개변수의 값에 따라 검사할 유형을 다르게 설정할 수 있습니다.

아래와 같은 형식으로 사용할 수 있습니다 

filter_var('검사할 값', 검사할 유형, (옵션));

 

 

'검사할 값'은 말 그대로 검사를 받을 대상(값)을 의미하며, 

'검사할 유형' 은 어떤 형식으로 검사할 건지를 결정할 수 있습니다!

검사할 유형에 따라 옵션을 사용할 수 있으며 자세한 내용은 아래 표를 참고해주세요🙂

 

파라미터(Parameter) 검사 유형 설명(Discription)
FILTER_VALIDATE_BOOLEAN
FILTER_VALIDATE_BOOL
Bool '1', 'true', 'on', 'yes'라는 데이터를 검사하면 'TRUE'를 응답합니다.
이외의 다른 값은 'FALSE'를 응답합니다.

*PHP 8 버전에서 추가된 파라미터입니다.
FILTER_VALIDATE_DOMAIN 도메인 입력된 값이 도메인 형식인지 검사합니다.
(예시 : http://test.domain.com)
도메인 형식이 맞다면 'TRUE'를 응답하고, 아니라면 'FALSE'를 응답합니다. 

*PHP 7 버전에서 추가된 파라미터입니다.
FILTER_VALIDATE_EMAIL 이메일 입력된 값이 이메일 형식인지 검사합니다. (예시 : id@testmail.com)
이메일 형식이 맞다면 'TRUE'를 응답하고, 아니라면 'FALSE'를 응답합니다.

<옵션 파라미터 및 설명>
FILTER_FLAG_EMAIL_UNICODE : 이메일 주소 중 로컬(예시 중 'testmail'에 해당하는 부분)에 유니코드 문자를 포함하여 검사하는 옵션입니다.
FILTER_VALIDATE_FLOAT 실수 입력된 값이 실수 형식인지 검사합니다. (예시: 3.4, 12.01 ...)
이메일 형식이 맞다면 'TRUE'를 응답하고, 아니라면 'FALSE'를 응답합니다.

<옵션 파라미터 및 설명>
FILTER_FLAG_ALLOW_THOUSAND : 1000 단위 숫자를 콤마( , ) 기호로 구분합니다.
FILTER_VALIDATE_INT 정수 입력된 값이 10진수 정수 형식인지 검사합니다. (예시 : 1, 52, -4 ...)
이메일 형식이 맞다면 'TRUE'를 응답하고, 아니라면 'FALSE'를 응답합니다.

<옵션 파라미터 및 설명>
FILTER_FLAG_ALLOW_OCTAL : 입력된 값을 8진수로 검증하는 옵션입니다. 입력된 값이 0으로 시작하는 8진수의 데이터라면 TRUE를 응답하고, 아니라면 'FALSE'를 응답합니다.

FILTER_FLAG_ALLOW_HEX : 입력된 값을 16진수로 검증하는 옵션입니다. 입력된 값이 0x 혹은 0X으로 시작하는 16진수의 데이터라면 TRUE를 응답하고, 아니라면 'FALSE'를 응답합니다.
FILTER_VALIDATE_IP 아이피 입력된 값이 IP(default : IPv4) 형식인지 검사합니다.
(예시 : 192.168.0.101)
이메일 형식이 맞다면 'TRUE'를 응답하고, 아니라면 'FALSE'를 응답합니다.

<옵션 파라미터 및 설명>
FILTER_FLAG_IPV4 : IP를 IPv4 형식으로 검사하는 옵션입니다.
FILTER_FLAG_IPV6 : IP를 IPv6 형식으로 검사하는 옵션입니다.
FILTER_VALIDATE_MAC 맥(MAC) 주소 입력된 값이 맥(MAC) 주소 형식인지 검사합니다.
(예시 : 00-FF-2D-72-E8-F0)
맥 주소 형식이 맞다면 'TRUE'를 응답하고, 아니라면 'FALSE'를 응답합니다.
FILTER_VALIDATE_REGEXP 정규식(Perl 호환) 입력된 값이 정규식 형식인지 검사합니다.
정규식 형식이 맞다면 'TRUE'를 응답하고, 아니라면 'FALSE'를 응답합니다.
FILTER_VALIDATE_URL URL 입력된 값이 URL 형식인지 검사합니다.
(예시 : http://test.domain.com)
URL 형식이 맞다면 'TRUE'를 응답하고, 아니라면 'FALSE'를 응답합니다.

<옵션 파라미터 및 설명>
FILTER_FLAG_SCHEME_REQUIRED : 입력 URL의 RFC를 준수하였는지 검사하는 옵션입니다. (예시 : http://example)

FILTER_FLAG_HOST_REQUIRED : 입력 URL의 호스트 이름이 포함되어 있는지 검사하는 옵션입니다. (예시 : http://test.domain.com)

FILTER_FLAG_PATH_REQUIRED : 입력 URL의 도메인 이름 뒤에 경로가 있는지 검사하는 옵션입니다.
(예시 : http://test.domain.com/example/).

FILTER_FLAG_QUERY_REQUIRED : 입력 URL의 쿼리 문자열이 있는지 검사하는 옵션입니다.(예: http://test.domain.com/example/test.php?query=value).

제가 알아보기 쉽게 작성한 내용이다 보니

위 표의 내용에 대하여 더 자세히 알고 싶으시다면 PHP에서 제공하는 매뉴얼을 참고해주시면 됩니다.

https://www.php.net/manual/en/filter.filters.validate.php

 

PHP: Validate filters - Manual

Contrary to what documentation implies, the FILTER_NULL_ON_FAILURE seem to affect any validation filter, not just FILTER_VALIDATE_BOOLEAN. I've been using that since PHP 5.2, and as of PHP 5.6.8 it still works. I have no clue if it's a blug or if it is as

www.php.net

 

 

그럼 이제 예시 코드를 보실까요?

간단하게 IP 검증하는 방법과 URL 검증하는 것 두 개 정도만 한번 보도록 하겠습니다!

(이번에는 요청-응답 페이지 없이 PHP 파일만 보여드리겠습니다🙂)

 

IP는 다음과 같이 검증합니다!

<?php

// 검증할 IP
$checkIP = "192.168.0.101" ;

// 검증
if (filter_var($checkIP, FILTER_VALIDATE_IP)) {
  echo $checkIP."은 정상적인 IP입니다.";
} else {
  echo "올바르지 않은 IP를 입력하셨습니다.";
}

?>

 

위 소스코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다. 

 

IP가 정상적으로 검증된 것을 볼 수 있습니다ㅎㅎ

검증하는 값이 IP 형식과 맞지 않다면 "올바르지 않은 IP를 입력하셨습니다."라고 나오겠죠?

 

다음으로 URL을 검증해봅시다!

<?php

// 검증할 URL
$checkUrl = "http://test.domain.com";

// 검증
if (filter_var($checkUrl, FILTER_VALIDATE_URL)) {
  echo $checkUrl."은 정상적인 url입니다.";
} else {
  echo "올바르지 않은 url을 입력하셨습니다.";
}

?>

 

위 소스코드를 실행하면 아래와 같은 결과를 얻을 수 있습니다. 

마지막으로 URL 검증할 때 사용할 수 있는 옵션을 적용해보겠습니다!

표에 소개된 URL 추가 검증 옵션 중 "FILTER_FLAG_QUERY_REQUIRED"를 사용하여 검증해봅시다!!

<?php

// 검증할 URL+Qurey
$checkUrl = "http://test.domain.com/example/test.php?query=value" ;

// 검증
if (filter_var($checkUrl, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED )) {
  echo $checkUrl."은 정상적인 url입니다.";
} else {
  echo "올바르지 않은 url을 입력하셨습니다.";
}
?>

위 소스코드를 실행하면 아래와 같은 결과를 얻을 수 있습니다. 

 

세번째 매개변수에 옵션을 넣어서 검증된 것을 볼 수 있습니다!

 

위 내용을 활용하여 PHP로 개발된 웹 페이지에서 특정 IP를 전달받는 경우, 회원가입 페이지를 구성하여 이메일을 검증하거나 숫자로 된 데이터(나이, 생년월일, 휴대폰 번호 등)를 검증하는 경우 등 나름 쓸만한 구석이 있을 것 같네요 ㅎㅎ

 

이 글을 읽어주시는 분들께서도 도움이 되었기를 바라며, 오늘 포스팅은 여기서 마무리하겠습니다😁

안녕하세요 워누입니다😀

 

오늘은 최근 가장 핫한 프론트엔드 라이브러리인 Angular, Vue, React 그리고 백엔드 언어인 Node.js까지..!

이 모든 것들에 대한 개발 환경을 맥에서 세팅하는 방법에 대해 포스팅하고자 합니다!

 

우선 Nodejs 사이트에 가서 파일을 다운받아야겠죠?

아래 홈페이지로 접근해주세요!

https://nodejs.org/ko/

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 

위와 같은 화면이 나오면 LTS 버전으로 다운로드를 받습니다!

** 1월 말 기준으로 가장 최신버전은 17.4.0, LTS 버전은 16.13.2 입니다.

** 시간이 지나 버전이 바뀌더라도 LTS 버전으로 받으시길 권장합니다.

pkg 파일 다운로드가 완료되면 실행해주세요!

node 패키지와 npm 패키지를 동시에 설치한다고 소개되어 있네요.

"계속" 버튼을 눌러서 진행합시다!

사용권 계약 내용입니다.

"계속" 버튼을 눌러서 진행합시다.

"동의" 버튼 클릭하셔서 다음으로 넘어갑시다!

설치 위치가 변경되어야 하는 경우라면 반드시 해당 단계에서 "설치 위치 변경..." 버튼을 클릭해서 변경해주세요!

변경이 필요없거나 설정이 완료되었다면 "설치" 버튼을 클릭합니다!

이젠 맥북도 지문인증으로...!!😀😀

비싼게 좋네요 ㅎㅎ

15~20초만 기다려주면 설치가 완료됩니다!

"닫기" 버튼을 클릭해주시고, "터미널"을 실행해주세요!

(VS Code에서 진행해도 되고, 맥북 내장 터미널에서 진행해도 됩니다.)

VS Code 내 터미널은 상단 매뉴 중 "보기"->"터미널"로 접근할 수 있답니다!

터미널로 접근하셨다면 아래 명령어를 입력해주세요!

 

node -v

node 패키지가 정상적으로 설치된 것을 볼 수 있네요!

마지막으로 아래 명령어를 입력해서 npm 패키지 정상 설치 여부를 확인해봅시다!

 

npm -v

npm 패키지도 정상적으로 잘 설치되었네요!

 

도움이 되셨길 바라며 오늘 포스팅은 이만 마무리하겠습니다🙂🙂

+ Recent posts