2024년 4월 26일 금요일

Mac 설치하고 처음에 설치해햐는 작업들



ohmyzsh 설치 매번 맥 깔고 할때마다 찾기 귀찬음을 방지하고자 설치하는 것들을 적어놓는다.

맥 처음 깔면설치하는것 

iterm 그리고 ohmyzsh

먼저 iterm 을 다운로드받는다.

https://iterm2.com/ 

그런후 ohmyzsh 를 다운받아 설치한다.

 sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

처음 설치하면 위와같은 화면이 나오는데 enter 를 누르면된다.
역시 한번에 되는것은 없다. 
git을 설치해준다.



설치하려니 Homebrew 를 설치해줘야한다.

https://brew.sh/

접속해서 정보를 확인해서 설치한다.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"


command line tool 도 알아서 설치해준다.

설치되고 나면 아래와 같은 설정을 해줘야 한다고한다.

    (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/dicky/.zprofile

    eval "$(/opt/homebrew/bin/brew shellenv)"

되고나면 git 을 설치해준다.

brew install git

설치되고 나면 다시 ohmyzsh 설치 하면 된다.

 sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"



2024년 1월 23일 화요일

Java 로 gmail을 이용해서 SMTP 메일 보내는 방법


 간단하게 SMTP로 메일 보내는 방법을 기술한다.

보안적으로 약간은 부족할수있다.

먼져 설정해야 할것은 Gmail 설정을 해줘야 한다.

1. 앱 비밀번호 만들기

구글 계정에 로그인하여 보안을 선택해준다.

로그인하는 방법에서 2단계 인증을 추가해준다.





2단계 인증절차를 진행해준다.
설정을 완료하면 2단계 인증 설정이 완료된다.
다시 2단계 인증화면으로 들어가 하단에 앱비밀번호를 설정해준다.




앱 이름을 적어주고 앱비밀번호를 설정해준다.
















16자리 비밀번호를 잘 저장해놓는다. (한번생성되면 확인불가)
생성된 앱정보를 확인 가능하다.








그럼 중요한 코드
Java maven 을 기준으로 하면 먼져 의존성을 추가해주고 코드를 작성하면 끝난다.

pom.xml 파일에 추가해준다.
```
<!-- Gmail -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
```
application.properities 에 mail 정보를 기입해준다.

```
#gmail
email.user=email
email.password=password
email.smtp.host=smtp.gmail.com
email.smtp.port=465
```

메일 작성코드를 작성해준다.
```
package com.shop.controller;

import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class EmailSender {
private Properties emailConfig;

public EmailSender() throws Exception {
this.emailConfig = loadEmailConfig();
}

private Properties loadEmailConfig() throws Exception {
Properties props = new Properties();
// application.properties 파일을 로드합니다.
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("application.properties"));
return props;
}

public void sendEmail(String recipient, String subject, String text) throws MessagingException {
Properties props = createEmailProperties();
Session session = createSession(props);

Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(emailConfig.getProperty("email.user")));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipient));
message.setSubject(subject);
message.setText(text);

Transport.send(message);
}

private Properties createEmailProperties() {
Properties props = new Properties();
props.put("mail.smtp.host", emailConfig.getProperty("email.smtp.host"));
props.put("mail.smtp.port", emailConfig.getProperty("email.smtp.port"));
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.trust", emailConfig.getProperty("email.smtp.host"));
return props;
}

private Session createSession(Properties props) {
return Session.getInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(emailConfig.getProperty("email.user"), emailConfig.getProperty("email.password"));
}
});
}

public static void main(String[] args) {
try {
EmailSender sender = new EmailSender();
sender.sendEmail("testemailaddress@gmail.com", "테스트 메일입니다.", "이것은 테스트 메일입니다. \n\n 잘 갔나요?");
} catch (Exception e) {
e.printStackTrace();
}
}
}
```

2021년 3월 31일 수요일

docker mysql 대문자테이블관련


대문자 테이블을 생성했다가 삭제하면 

xxxx doesn't exist 가 자주떠서 도커를 재실행하곤 했음.

일반설정변경하려면 my.cnf 파일 변경하면되는데 도커라..

그래서 아래와 같이 실행시 옵션을 주면됨.


시작할대 옵션변경하려면

-- lower_case_table_names=1 과 같이 주면된다.


```

 docker run -d -p 3306:3306 \

--restart always \

-e MYSQL_ROOT_PASSWORD=dicky \

--name mysql \

mysql:5.7 --lower_case_table_names=1

```